@lumx/react 3.10.1-alpha.2 → 3.10.1-alpha.4

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 (334) hide show
  1. package/_internal/{8d67e1e3.d.ts → index.d.ts} +1 -1
  2. package/_internal/index.js +99 -0
  3. package/_internal/index.js.map +1 -0
  4. package/index.d.ts +3000 -66
  5. package/index.js +14561 -64
  6. package/index.js.map +1 -1
  7. package/package.json +3 -3
  8. package/src/components/button/Button.tsx +4 -5
  9. package/src/components/button/ButtonRoot.tsx +1 -3
  10. package/src/components/chip/Chip.tsx +7 -11
  11. package/src/components/date-picker/DatePickerControlled.tsx +1 -1
  12. package/src/components/dialog/Dialog.tsx +1 -1
  13. package/src/components/expansion-panel/ExpansionPanel.test.tsx +2 -2
  14. package/src/components/expansion-panel/ExpansionPanel.tsx +14 -18
  15. package/src/components/flex-box/FlexBox.tsx +1 -1
  16. package/src/components/generic-block/GenericBlock.tsx +6 -7
  17. package/src/components/generic-block/constants.ts +9 -4
  18. package/src/components/grid-column/GridColumn.tsx +1 -2
  19. package/src/components/image-lightbox/internal/ImageSlide.tsx +2 -2
  20. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +4 -8
  21. package/src/components/image-lightbox/useImageLightbox.tsx +3 -4
  22. package/src/components/link/Link.tsx +3 -5
  23. package/src/components/list/ListItem.tsx +2 -3
  24. package/src/components/list/useInteractiveList.tsx +1 -2
  25. package/src/components/mosaic/Mosaic.test.tsx +3 -3
  26. package/src/components/mosaic/Mosaic.tsx +2 -3
  27. package/src/components/navigation/Navigation.tsx +42 -37
  28. package/src/components/navigation/NavigationSection.tsx +76 -79
  29. package/src/components/notification/Notification.tsx +1 -5
  30. package/src/components/popover/usePopoverStyle.tsx +3 -1
  31. package/src/components/popover/useRestoreFocusOnClose.tsx +1 -1
  32. package/src/components/popover-dialog/PopoverDialog.test.tsx +1 -1
  33. package/src/components/post-block/PostBlock.tsx +4 -8
  34. package/src/components/progress-tracker/ProgressTracker.stories.tsx +11 -11
  35. package/src/components/select/Select.stories.tsx +14 -5
  36. package/src/components/select/Select.test.tsx +2 -2
  37. package/src/components/select/Select.tsx +1 -2
  38. package/src/components/select/SelectMultiple.stories.tsx +12 -10
  39. package/src/components/side-navigation/SideNavigationItem.tsx +1 -1
  40. package/src/components/slideshow/Slides.tsx +1 -1
  41. package/src/components/slideshow/SlideshowControls.tsx +1 -1
  42. package/src/components/slideshow/useSlideFocusManagement.tsx +1 -1
  43. package/src/components/switch/Switch.tsx +1 -2
  44. package/src/components/tabs/Tabs.stories.tsx +3 -4
  45. package/src/components/text-field/TextField.test.tsx +4 -4
  46. package/src/components/text-field/TextField.tsx +2 -3
  47. package/src/components/tooltip/Tooltip.test.tsx +2 -2
  48. package/src/components/tooltip/useTooltipOpen.tsx +3 -3
  49. package/src/components/user-block/UserBlock.tsx +7 -9
  50. package/src/hooks/useCallbackOnEscape.ts +1 -1
  51. package/src/hooks/useClickAway.tsx +1 -2
  52. package/src/hooks/useFocusTrap.ts +1 -1
  53. package/src/hooks/useInterval.tsx +1 -4
  54. package/src/hooks/useKeyboardListNavigation.tsx +2 -4
  55. package/src/hooks/useSizeOnWindowResize.ts +14 -10
  56. package/src/hooks/useStopPropagation.ts +1 -2
  57. package/src/hooks/useTransitionVisibility.ts +2 -2
  58. package/src/stories/decorators/withCombinations.tsx +1 -1
  59. package/src/testing/utils/commonTestsSuiteRTL.tsx +2 -2
  60. package/src/utils/{DOM → browser/DOM}/startViewTransition.ts +3 -3
  61. package/src/utils/{focus → browser/focus}/getFirstAndLastFocusable.test.ts +1 -1
  62. package/src/utils/{focus → browser/focus}/getFocusableElements.test.ts +1 -1
  63. package/src/utils/{browserDoesNotSupportHover.test.js → browser/isHoverNotSupported.test.js} +5 -5
  64. package/src/utils/browser/isHoverNotSupported.ts +2 -0
  65. package/src/utils/browser/{getPrefersReducedMotion.ts → isReducedMotion.ts} +1 -1
  66. package/src/utils/className/getFontColorClassName.ts +9 -0
  67. package/src/utils/{className.ts → className/getRootClassName.ts} +1 -21
  68. package/src/utils/className/getTypographyClassName.ts +9 -0
  69. package/src/utils/className/index.ts +4 -0
  70. package/src/utils/collection/castArray.test.ts +15 -0
  71. package/src/utils/collection/castArray.ts +3 -0
  72. package/src/utils/collection/chunk.test.ts +15 -0
  73. package/src/utils/collection/chunk.ts +6 -0
  74. package/src/utils/collection/isEmpty.test.js +20 -0
  75. package/src/utils/collection/isEmpty.ts +4 -0
  76. package/src/utils/collection/last.ts +2 -0
  77. package/src/utils/collection/partitionMulti.test.ts +35 -0
  78. package/src/utils/{partitionMulti.ts → collection/partitionMulti.ts} +13 -12
  79. package/src/utils/collection/pull.test.ts +17 -0
  80. package/src/utils/collection/pull.ts +7 -0
  81. package/src/utils/collection/range.test.js +9 -0
  82. package/src/utils/collection/range.ts +2 -0
  83. package/src/utils/date/getMonthCalendar.ts +3 -4
  84. package/src/utils/flattenChildren.ts +2 -3
  85. package/src/utils/function/memoize.test.ts +36 -0
  86. package/src/utils/function/memoize.ts +13 -0
  87. package/src/utils/makeListenerTowerContext.ts +2 -2
  88. package/src/utils/partitionMulti.test.ts +27 -0
  89. package/src/utils/react/forwardRef.ts +3 -2
  90. package/src/utils/react/forwardRefPolymorphic.ts +1 -2
  91. package/utils/index.d.ts +1 -1
  92. package/utils/index.js +1 -96
  93. package/utils/index.js.map +1 -1
  94. package/_internal/17c3ea1d.js +0 -137
  95. package/_internal/17c3ea1d.js.map +0 -1
  96. package/_internal/1da25128.js +0 -411
  97. package/_internal/1da25128.js.map +0 -1
  98. package/_internal/230173a8.js +0 -13
  99. package/_internal/230173a8.js.map +0 -1
  100. package/_internal/23bdba2d.js +0 -71
  101. package/_internal/23bdba2d.js.map +0 -1
  102. package/_internal/26926e5c.d.ts +0 -36
  103. package/_internal/2a3d237c.js +0 -12
  104. package/_internal/2a3d237c.js.map +0 -1
  105. package/_internal/2c5dbb03.js +0 -26
  106. package/_internal/2c5dbb03.js.map +0 -1
  107. package/_internal/2e2abe51.js +0 -2154
  108. package/_internal/2e2abe51.js.map +0 -1
  109. package/_internal/31490c59.d.ts +0 -167
  110. package/_internal/3181f000.js +0 -14
  111. package/_internal/3181f000.js.map +0 -1
  112. package/_internal/35f100be.d.ts +0 -104
  113. package/_internal/36bd7352.js +0 -219
  114. package/_internal/36bd7352.js.map +0 -1
  115. package/_internal/3a1facc0.js +0 -18
  116. package/_internal/3a1facc0.js.map +0 -1
  117. package/_internal/4c20d932.js +0 -89
  118. package/_internal/4c20d932.js.map +0 -1
  119. package/_internal/4c28d012.js +0 -305
  120. package/_internal/4c28d012.js.map +0 -1
  121. package/_internal/4cd0bf32.js +0 -160
  122. package/_internal/4cd0bf32.js.map +0 -1
  123. package/_internal/4daccdd5.js +0 -25
  124. package/_internal/4daccdd5.js.map +0 -1
  125. package/_internal/524b1d04.js +0 -64
  126. package/_internal/524b1d04.js.map +0 -1
  127. package/_internal/53c94227.js +0 -123
  128. package/_internal/53c94227.js.map +0 -1
  129. package/_internal/54d9ded5.js +0 -418
  130. package/_internal/54d9ded5.js.map +0 -1
  131. package/_internal/56aec41b.js +0 -652
  132. package/_internal/56aec41b.js.map +0 -1
  133. package/_internal/5720caf5.js +0 -124
  134. package/_internal/5720caf5.js.map +0 -1
  135. package/_internal/646f0db6.js +0 -113
  136. package/_internal/646f0db6.js.map +0 -1
  137. package/_internal/6cc8dca8.d.ts +0 -22
  138. package/_internal/7f022f8c.d.ts +0 -34
  139. package/_internal/b8f2948d.js +0 -691
  140. package/_internal/b8f2948d.js.map +0 -1
  141. package/_internal/bc28d510.js +0 -784
  142. package/_internal/bc28d510.js.map +0 -1
  143. package/_internal/c68d24e4.js +0 -145
  144. package/_internal/c68d24e4.js.map +0 -1
  145. package/_internal/c6c99f76.js +0 -105
  146. package/_internal/c6c99f76.js.map +0 -1
  147. package/_internal/cae46566.js +0 -65
  148. package/_internal/cae46566.js.map +0 -1
  149. package/_internal/components/alert-dialog/index.ts-623b1ed3.d.ts +0 -37
  150. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js +0 -148
  151. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js.map +0 -1
  152. package/_internal/components/autocomplete/index.ts-3f8f125c.js +0 -264
  153. package/_internal/components/autocomplete/index.ts-3f8f125c.js.map +0 -1
  154. package/_internal/components/autocomplete/index.ts-8d6b123f.d.ts +0 -201
  155. package/_internal/components/avatar/index.ts-93ee0ea9.js +0 -89
  156. package/_internal/components/avatar/index.ts-93ee0ea9.js.map +0 -1
  157. package/_internal/components/avatar/index.ts-f92852b4.d.ts +0 -43
  158. package/_internal/components/badge/index.ts-2d7700ef.d.ts +0 -30
  159. package/_internal/components/badge/index.ts-6753d67f.js +0 -88
  160. package/_internal/components/badge/index.ts-6753d67f.js.map +0 -1
  161. package/_internal/components/button/index.ts-031307ce.js +0 -51
  162. package/_internal/components/button/index.ts-031307ce.js.map +0 -1
  163. package/_internal/components/button/index.ts-b29e26a4.d.ts +0 -22
  164. package/_internal/components/checkbox/index.ts-a33166d7.js +0 -127
  165. package/_internal/components/checkbox/index.ts-a33166d7.js.map +0 -1
  166. package/_internal/components/checkbox/index.ts-f82358ff.d.ts +0 -38
  167. package/_internal/components/chip/index.ts-4a91f1a7.d.ts +0 -68
  168. package/_internal/components/chip/index.ts-a2b5b771.js +0 -110
  169. package/_internal/components/chip/index.ts-a2b5b771.js.map +0 -1
  170. package/_internal/components/comment-block/index.ts-58fa051a.js +0 -121
  171. package/_internal/components/comment-block/index.ts-58fa051a.js.map +0 -1
  172. package/_internal/components/comment-block/index.ts-8cfa5af0.d.ts +0 -67
  173. package/_internal/components/date-picker/index.ts-145262d5.js +0 -2
  174. package/_internal/components/date-picker/index.ts-145262d5.js.map +0 -1
  175. package/_internal/components/date-picker/index.ts-70a34fa7.d.ts +0 -95
  176. package/_internal/components/dialog/index.ts-ea044db2.js +0 -224
  177. package/_internal/components/dialog/index.ts-ea044db2.js.map +0 -1
  178. package/_internal/components/dialog/index.ts-eca28654.d.ts +0 -55
  179. package/_internal/components/divider/index.ts-4a56db75.js +0 -55
  180. package/_internal/components/divider/index.ts-4a56db75.js.map +0 -1
  181. package/_internal/components/divider/index.ts-b011d8ca.d.ts +0 -18
  182. package/_internal/components/drag-handle/index.ts-0aebf92f.js +0 -54
  183. package/_internal/components/drag-handle/index.ts-0aebf92f.js.map +0 -1
  184. package/_internal/components/drag-handle/index.ts-3ab31dd1.d.ts +0 -18
  185. package/_internal/components/dropdown/index.ts-2a17db51.js +0 -154
  186. package/_internal/components/dropdown/index.ts-2a17db51.js.map +0 -1
  187. package/_internal/components/dropdown/index.ts-b648a15c.d.ts +0 -87
  188. package/_internal/components/expansion-panel/index.ts-69f09f5b.d.ts +0 -38
  189. package/_internal/components/expansion-panel/index.ts-fae3762e.js +0 -143
  190. package/_internal/components/expansion-panel/index.ts-fae3762e.js.map +0 -1
  191. package/_internal/components/flag/index.ts-8dcd685b.js +0 -56
  192. package/_internal/components/flag/index.ts-8dcd685b.js.map +0 -1
  193. package/_internal/components/flag/index.ts-fda89adb.d.ts +0 -23
  194. package/_internal/components/flex-box/index.ts-87f2b58d.d.ts +0 -43
  195. package/_internal/components/flex-box/index.ts-c216e957.js +0 -60
  196. package/_internal/components/flex-box/index.ts-c216e957.js.map +0 -1
  197. package/_internal/components/generic-block/index.ts-999a62a4.js +0 -115
  198. package/_internal/components/generic-block/index.ts-999a62a4.js.map +0 -1
  199. package/_internal/components/generic-block/index.ts-cd3b0e21.d.ts +0 -106
  200. package/_internal/components/grid/index.ts-67e0694f.d.ts +0 -50
  201. package/_internal/components/grid/index.ts-fdf1b306.js +0 -113
  202. package/_internal/components/grid/index.ts-fdf1b306.js.map +0 -1
  203. package/_internal/components/grid-column/index.ts-97c61cbe.js +0 -64
  204. package/_internal/components/grid-column/index.ts-97c61cbe.js.map +0 -1
  205. package/_internal/components/grid-column/index.ts-c89e1c18.d.ts +0 -31
  206. package/_internal/components/heading/index.ts-0179e9a9.js +0 -112
  207. package/_internal/components/heading/index.ts-0179e9a9.js.map +0 -1
  208. package/_internal/components/heading/index.ts-587579e8.d.ts +0 -37
  209. package/_internal/components/icon/index.ts-740ca1de.js +0 -2
  210. package/_internal/components/icon/index.ts-740ca1de.js.map +0 -1
  211. package/_internal/components/icon/index.ts-b3fa5e15.d.ts +0 -34
  212. package/_internal/components/image-block/index.ts-36b3828f.d.ts +0 -49
  213. package/_internal/components/image-block/index.ts-ef5e2e7d.js +0 -111
  214. package/_internal/components/image-block/index.ts-ef5e2e7d.js.map +0 -1
  215. package/_internal/components/image-lightbox/index.ts-137f85a8.js +0 -765
  216. package/_internal/components/image-lightbox/index.ts-137f85a8.js.map +0 -1
  217. package/_internal/components/image-lightbox/index.ts-2cb92d18.d.ts +0 -75
  218. package/_internal/components/inline-list/index.ts-033dd358.js +0 -76
  219. package/_internal/components/inline-list/index.ts-033dd358.js.map +0 -1
  220. package/_internal/components/inline-list/index.ts-e1c8a3ff.d.ts +0 -34
  221. package/_internal/components/input-helper/index.ts-32a9ca90.d.ts +0 -22
  222. package/_internal/components/input-helper/index.ts-ab3a1ef5.js +0 -75
  223. package/_internal/components/input-helper/index.ts-ab3a1ef5.js.map +0 -1
  224. package/_internal/components/input-label/index.ts-86f2ea41.d.ts +0 -24
  225. package/_internal/components/input-label/index.ts-d6ca5569.js +0 -60
  226. package/_internal/components/input-label/index.ts-d6ca5569.js.map +0 -1
  227. package/_internal/components/lightbox/index.ts-5370e8e6.d.ts +0 -36
  228. package/_internal/components/lightbox/index.ts-7a16cdc7.js +0 -149
  229. package/_internal/components/lightbox/index.ts-7a16cdc7.js.map +0 -1
  230. package/_internal/components/link/index.ts-26435006.d.ts +0 -37
  231. package/_internal/components/link/index.ts-d04f4e53.js +0 -120
  232. package/_internal/components/link/index.ts-d04f4e53.js.map +0 -1
  233. package/_internal/components/link-preview/index.ts-e560a274.d.ts +0 -36
  234. package/_internal/components/link-preview/index.ts-fee89f66.js +0 -109
  235. package/_internal/components/link-preview/index.ts-fee89f66.js.map +0 -1
  236. package/_internal/components/list/index.ts-ab57902e.d.ts +0 -118
  237. package/_internal/components/list/index.ts-f3101625.js +0 -86
  238. package/_internal/components/list/index.ts-f3101625.js.map +0 -1
  239. package/_internal/components/message/index.ts-041cf0cb.js +0 -97
  240. package/_internal/components/message/index.ts-041cf0cb.js.map +0 -1
  241. package/_internal/components/message/index.ts-2d38e0ea.d.ts +0 -37
  242. package/_internal/components/mosaic/index.ts-232d5aed.d.ts +0 -23
  243. package/_internal/components/mosaic/index.ts-d2128cd3.js +0 -94
  244. package/_internal/components/mosaic/index.ts-d2128cd3.js.map +0 -1
  245. package/_internal/components/navigation/index.ts-6d8bea53.d.ts +0 -58
  246. package/_internal/components/navigation/index.ts-e8dc0a7f.js +0 -222
  247. package/_internal/components/navigation/index.ts-e8dc0a7f.js.map +0 -1
  248. package/_internal/components/notification/index.ts-235fd340.js +0 -140
  249. package/_internal/components/notification/index.ts-235fd340.js.map +0 -1
  250. package/_internal/components/notification/index.ts-bb3f03f6.d.ts +0 -34
  251. package/_internal/components/popover/index.ts-2f17a9b6.js +0 -3
  252. package/_internal/components/popover/index.ts-2f17a9b6.js.map +0 -1
  253. package/_internal/components/popover/index.ts-e3b4ff19.d.ts +0 -66
  254. package/_internal/components/post-block/index.ts-0acb9bb4.js +0 -101
  255. package/_internal/components/post-block/index.ts-0acb9bb4.js.map +0 -1
  256. package/_internal/components/post-block/index.ts-9b8ff90b.d.ts +0 -41
  257. package/_internal/components/progress/index.ts-2a713859.js +0 -189
  258. package/_internal/components/progress/index.ts-2a713859.js.map +0 -1
  259. package/_internal/components/progress/index.ts-dfdfa5fb.d.ts +0 -60
  260. package/_internal/components/progress-tracker/index.ts-2649f756.js +0 -312
  261. package/_internal/components/progress-tracker/index.ts-2649f756.js.map +0 -1
  262. package/_internal/components/progress-tracker/index.ts-95320f32.d.ts +0 -101
  263. package/_internal/components/radio-button/index.ts-5eaab4cf.d.ts +0 -54
  264. package/_internal/components/radio-button/index.ts-b4dfb2a0.js +0 -150
  265. package/_internal/components/radio-button/index.ts-b4dfb2a0.js.map +0 -1
  266. package/_internal/components/select/index.ts-a65e3507.d.ts +0 -91
  267. package/_internal/components/select/index.ts-e8fad28b.js +0 -257
  268. package/_internal/components/select/index.ts-e8fad28b.js.map +0 -1
  269. package/_internal/components/side-navigation/index.ts-3f5f3785.d.ts +0 -60
  270. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js +0 -184
  271. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js.map +0 -1
  272. package/_internal/components/skeleton/index.ts-a7daefac.d.ts +0 -75
  273. package/_internal/components/skeleton/index.ts-ffc995af.js +0 -179
  274. package/_internal/components/skeleton/index.ts-ffc995af.js.map +0 -1
  275. package/_internal/components/slider/index.ts-24a0d598.d.ts +0 -52
  276. package/_internal/components/slider/index.ts-72aadf4c.js +0 -308
  277. package/_internal/components/slider/index.ts-72aadf4c.js.map +0 -1
  278. package/_internal/components/slideshow/index.ts-c99f2892.js +0 -151
  279. package/_internal/components/slideshow/index.ts-c99f2892.js.map +0 -1
  280. package/_internal/components/slideshow/index.ts-e49462c6.d.ts +0 -25
  281. package/_internal/components/switch/index.ts-207ba52b.d.ts +0 -34
  282. package/_internal/components/switch/index.ts-542e6eaf.js +0 -115
  283. package/_internal/components/switch/index.ts-542e6eaf.js.map +0 -1
  284. package/_internal/components/table/index.ts-905ce390.js +0 -310
  285. package/_internal/components/table/index.ts-905ce390.js.map +0 -1
  286. package/_internal/components/table/index.ts-c4f39b2d.d.ts +0 -108
  287. package/_internal/components/tabs/index.ts-713119f4.js +0 -289
  288. package/_internal/components/tabs/index.ts-713119f4.js.map +0 -1
  289. package/_internal/components/tabs/index.ts-dbfc48d9.d.ts +0 -106
  290. package/_internal/components/text/index.ts-6afbe8cd.js +0 -2
  291. package/_internal/components/text/index.ts-6afbe8cd.js.map +0 -1
  292. package/_internal/components/text/index.ts-8a812048.d.ts +0 -53
  293. package/_internal/components/text-field/index.ts-92e6b3b3.d.ts +0 -77
  294. package/_internal/components/text-field/index.ts-c3be8563.js +0 -341
  295. package/_internal/components/text-field/index.ts-c3be8563.js.map +0 -1
  296. package/_internal/components/thumbnail/index.ts-16d7b403.js +0 -40
  297. package/_internal/components/thumbnail/index.ts-16d7b403.js.map +0 -1
  298. package/_internal/components/thumbnail/index.ts-1b6c0b48.d.ts +0 -8
  299. package/_internal/components/toolbar/index.ts-813b902e.js +0 -63
  300. package/_internal/components/toolbar/index.ts-813b902e.js.map +0 -1
  301. package/_internal/components/toolbar/index.ts-9f5129d1.d.ts +0 -24
  302. package/_internal/components/tooltip/index.ts-905c847c.js +0 -322
  303. package/_internal/components/tooltip/index.ts-905c847c.js.map +0 -1
  304. package/_internal/components/tooltip/index.ts-c6931e9e.d.ts +0 -35
  305. package/_internal/components/uploader/index.ts-31f21c2a.js +0 -132
  306. package/_internal/components/uploader/index.ts-31f21c2a.js.map +0 -1
  307. package/_internal/components/uploader/index.ts-c3ccba98.d.ts +0 -51
  308. package/_internal/components/user-block/index.ts-18c58e19.d.ts +0 -50
  309. package/_internal/components/user-block/index.ts-d43e5f3c.js +0 -136
  310. package/_internal/components/user-block/index.ts-d43e5f3c.js.map +0 -1
  311. package/_internal/dc3e28c8.d.ts +0 -38
  312. package/_internal/f39a1ba4.js +0 -73
  313. package/_internal/f39a1ba4.js.map +0 -1
  314. package/_internal/f3e77e3e.js +0 -22
  315. package/_internal/f3e77e3e.js.map +0 -1
  316. package/_internal/f502ab30.js +0 -78
  317. package/_internal/f502ab30.js.map +0 -1
  318. package/_internal/f52adbae.js +0 -36
  319. package/_internal/f52adbae.js.map +0 -1
  320. package/_internal/f57e1239.js +0 -205
  321. package/_internal/f57e1239.js.map +0 -1
  322. package/_internal/f5ff1aa4.d.ts +0 -47
  323. package/_internal/fb975afe.js +0 -52
  324. package/_internal/fb975afe.js.map +0 -1
  325. package/src/utils/browserDoesNotSupportHover.ts +0 -2
  326. package/src/utils/isInternetExplorer.ts +0 -15
  327. package/src/utils/userHasReducedMotion.ts +0 -7
  328. package/src/utils/utils.test.ts +0 -48
  329. /package/src/utils/{DOM → browser/DOM}/findImage.tsx +0 -0
  330. /package/src/utils/{event.ts → browser/event.ts} +0 -0
  331. /package/src/utils/{focus → browser/focus}/constants.ts +0 -0
  332. /package/src/utils/{focus → browser/focus}/getFirstAndLastFocusable.ts +0 -0
  333. /package/src/utils/{focus → browser/focus}/getFocusableElements.ts +0 -0
  334. /package/src/utils/{isFocusVisible.ts → browser/isFocusVisible.ts} +0 -0
@@ -1,691 +0,0 @@
1
- import { h as getRootClassName, i as forwardRef, j as _objectWithoutProperties, _ as _extends, g as classNames, T as Theme, m as WINDOW, E as Emphasis } from './1da25128.js';
2
- import React__default, { useRef, useEffect, useState, useCallback, useMemo, Children } from 'react';
3
- import { h as handleBasicClasses, d as detectHorizontalSwipe } from './f57e1239.js';
4
- import range from 'lodash/range';
5
- import isFunction from 'lodash/isFunction';
6
- import { u as useId } from './3a1facc0.js';
7
- import { u as useRovingTabIndex } from './f502ab30.js';
8
- import { u as useTheme } from './3181f000.js';
9
- import { a as mdiChevronLeft, b as mdiPauseCircleOutline, c as mdiPlayCircleOutline, d as mdiChevronRight } from './c6c99f76.js';
10
- import { I as IconButton } from './23bdba2d.js';
11
- import chunk from 'lodash/chunk';
12
- import { m as mergeRefs } from './f52adbae.js';
13
- import { g as getFocusableElements } from './230173a8.js';
14
-
15
- /**
16
- * Making setInterval Declarative with React Hooks.
17
- * Credits: https://overreacted.io/making-setinterval-declarative-with-react-hooks/
18
- *
19
- * @param callback Function called by setInterval.
20
- * @param delay Delay for setInterval.
21
- */
22
- function useInterval(callback, delay) {
23
- const savedCallback = useRef();
24
- useEffect(() => {
25
- savedCallback.current = callback;
26
- });
27
- useEffect(() => {
28
- if (delay === null) return undefined;
29
- function tick() {
30
- if (isFunction(savedCallback.current)) {
31
- savedCallback.current();
32
- }
33
- }
34
- const id = setInterval(tick, delay);
35
- return () => clearInterval(id);
36
- }, [delay]);
37
- }
38
-
39
- /**
40
- * Autoplay default interval in ms.
41
- */
42
- const AUTOPLAY_DEFAULT_INTERVAL = 5000;
43
-
44
- /**
45
- * Full width size in percent.
46
- */
47
- const FULL_WIDTH_PERCENT = 100;
48
-
49
- /**
50
- * Edge from the active index.
51
- */
52
- const EDGE_FROM_ACTIVE_INDEX = 2;
53
-
54
- /**
55
- * Max number of pagination items.
56
- */
57
- const PAGINATION_ITEMS_MAX = 5;
58
-
59
- /**
60
- * Size of a pagination item. Used to translate wrapper.
61
- */
62
- const PAGINATION_ITEM_SIZE = 12;
63
-
64
- const DEFAULT_OPTIONS = {
65
- activeIndex: 0,
66
- groupBy: 1,
67
- interval: AUTOPLAY_DEFAULT_INTERVAL
68
- };
69
- const useSlideshowControls = _ref => {
70
- let {
71
- activeIndex = DEFAULT_OPTIONS.activeIndex,
72
- groupBy = DEFAULT_OPTIONS.groupBy,
73
- interval = DEFAULT_OPTIONS.interval,
74
- autoPlay,
75
- defaultActiveIndex,
76
- onChange,
77
- itemsCount,
78
- id,
79
- slidesId
80
- } = _ref;
81
- const [currentIndex, setCurrentIndex] = useState(activeIndex);
82
- // Use state instead of a ref to make the slideshow controls update directly when the element is set.
83
- const [element, setElement] = useState(null);
84
-
85
- // Number of slides when using groupBy prop.
86
- const slidesCount = Math.ceil(itemsCount / Math.min(groupBy, itemsCount));
87
-
88
- // Change current index to display next slide.
89
- const goToNextSlide = useCallback(function () {
90
- let loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
91
- setCurrentIndex(index => {
92
- if (loopback && index === slidesCount - 1) {
93
- // Loopback to the start.
94
- return 0;
95
- }
96
- if (index < slidesCount - 1) {
97
- // Next slide.
98
- return index + 1;
99
- }
100
- return index;
101
- });
102
- }, [slidesCount, setCurrentIndex]);
103
-
104
- // Change current index to display previous slide.
105
- const goToPreviousSlide = useCallback(function () {
106
- let loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
107
- setCurrentIndex(index => {
108
- if (loopback && index === 0) {
109
- // Loopback to the end.
110
- return slidesCount - 1;
111
- }
112
- if (index > 0) {
113
- // Previous slide.
114
- return index - 1;
115
- }
116
- return index;
117
- });
118
- }, [slidesCount, setCurrentIndex]);
119
-
120
- // Auto play
121
- const [isAutoPlaying, setIsAutoPlaying] = useState(Boolean(autoPlay));
122
- const [isForcePaused, setIsForcePaused] = useState(false);
123
- const isSlideshowAutoPlaying = isForcePaused ? false : isAutoPlaying;
124
- // Start
125
- useInterval(goToNextSlide, isSlideshowAutoPlaying && slidesCount > 1 ? interval : null);
126
-
127
- // Reset current index if it become invalid.
128
- useEffect(() => {
129
- if (currentIndex > slidesCount - 1) {
130
- setCurrentIndex(defaultActiveIndex);
131
- }
132
- }, [currentIndex, slidesCount, defaultActiveIndex]);
133
- const startAutoPlay = () => {
134
- setIsAutoPlaying(Boolean(autoPlay));
135
- };
136
- const stopAutoPlay = () => {
137
- setIsAutoPlaying(false);
138
- };
139
-
140
- // Handle click on a bullet to go to a specific slide.
141
- const onPaginationClick = useCallback(index => {
142
- stopAutoPlay();
143
- setIsForcePaused(true);
144
- if (index >= 0 && index < slidesCount) {
145
- setCurrentIndex(index);
146
- }
147
- }, [slidesCount, setCurrentIndex]);
148
-
149
- // Handle click or keyboard event to go to next slide.
150
- const onNextClick = useCallback(function () {
151
- let loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
152
- stopAutoPlay();
153
- setIsForcePaused(true);
154
- goToNextSlide(loopback);
155
- }, [goToNextSlide]);
156
-
157
- // Handle click or keyboard event to go to previous slide.
158
- const onPreviousClick = useCallback(function () {
159
- let loopback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
160
- stopAutoPlay();
161
- setIsForcePaused(true);
162
- goToPreviousSlide(loopback);
163
- }, [goToPreviousSlide]);
164
-
165
- // If the activeIndex props changes, update the current slide
166
- useEffect(() => {
167
- setCurrentIndex(activeIndex);
168
- }, [activeIndex]);
169
-
170
- // If the slide changes, with autoplay for example, trigger "onChange"
171
- useEffect(() => {
172
- if (!onChange) return;
173
- onChange(currentIndex);
174
- }, [currentIndex, onChange]);
175
- const generatedSlideshowId = useId();
176
- const slideshowId = id || generatedSlideshowId;
177
- const generatedSlidesId = useId();
178
- const slideshowSlidesId = slidesId || generatedSlidesId;
179
- const toggleAutoPlay = () => {
180
- if (isSlideshowAutoPlaying) {
181
- stopAutoPlay();
182
- } else {
183
- startAutoPlay();
184
- }
185
- };
186
- const toggleForcePause = () => {
187
- const shouldBePaused = !isForcePaused;
188
- setIsForcePaused(shouldBePaused);
189
- if (!shouldBePaused) {
190
- startAutoPlay();
191
- } else {
192
- stopAutoPlay();
193
- }
194
- };
195
-
196
- // Start index and end index of visible slides.
197
- const startIndexVisible = currentIndex * groupBy;
198
- const endIndexVisible = startIndexVisible + groupBy;
199
- return {
200
- startIndexVisible,
201
- endIndexVisible,
202
- setSlideshow: setElement,
203
- slideshow: element,
204
- slideshowId,
205
- slideshowSlidesId,
206
- onPreviousClick,
207
- onNextClick,
208
- onPaginationClick,
209
- isAutoPlaying: isSlideshowAutoPlaying,
210
- toggleAutoPlay,
211
- activeIndex: currentIndex,
212
- slidesCount,
213
- setActiveIndex: setCurrentIndex,
214
- startAutoPlay,
215
- stopAutoPlay,
216
- isForcePaused,
217
- toggleForcePause
218
- };
219
- };
220
-
221
- /**
222
- * Classname set on elements whose focus was blocked.
223
- * This is to easily find elements that have been tempered with,
224
- * and not elements whose focus was already initially blocked.
225
- * */
226
- const BLOCKED_FOCUS_CLASSNAME = 'focus-blocked';
227
-
228
- /**
229
- * Manage how slides must behave when visible or not.
230
- * When not visible, they should be hidden from screen readers and not focusable.
231
- */
232
- const useSlideFocusManagement = _ref => {
233
- let {
234
- isSlideDisplayed,
235
- slideRef
236
- } = _ref;
237
- useEffect(() => {
238
- const element = slideRef === null || slideRef === void 0 ? void 0 : slideRef.current;
239
- if (!element) {
240
- return undefined;
241
- }
242
-
243
- /**
244
- * Display given slide to screen readers and, if focus was blocked, restore focus on elements.
245
- */
246
- const enableSlide = () => {
247
- // Hide from screen readers
248
- element.setAttribute('aria-hidden', 'false');
249
- // Find elements we have blocked focus on
250
- element.querySelectorAll(`.${BLOCKED_FOCUS_CLASSNAME}`).forEach(focusableElement => {
251
- focusableElement.removeAttribute('tabindex');
252
- focusableElement.classList.remove(BLOCKED_FOCUS_CLASSNAME);
253
- });
254
- };
255
-
256
- /**
257
- * Hide given slide from screen readers and block focus on all focusable elements within.
258
- */
259
- const blockSlide = () => {
260
- element.setAttribute('aria-hidden', 'true');
261
- getFocusableElements(element).forEach(focusableElement => {
262
- focusableElement.setAttribute('tabindex', '-1');
263
- focusableElement.classList.add(BLOCKED_FOCUS_CLASSNAME);
264
- });
265
- };
266
- const handleDisplay = () => {
267
- if (!element) {
268
- return;
269
- }
270
- if (isSlideDisplayed) {
271
- enableSlide();
272
- } else {
273
- blockSlide();
274
- }
275
- };
276
-
277
- // Callback function to execute when mutations are observed
278
- const callback = mutationsList => {
279
- if (element) {
280
- for (const mutation of mutationsList) {
281
- if (mutation.type === 'childList') {
282
- handleDisplay();
283
- }
284
- }
285
- }
286
- };
287
-
288
- // Create an observer instance linked to the callback function
289
- const observer = new MutationObserver(callback);
290
- if (element) {
291
- handleDisplay();
292
-
293
- /** If slide is hidden, start observing for elements to block focus */
294
- if (!isSlideDisplayed) {
295
- observer.observe(element, {
296
- attributes: true,
297
- childList: true,
298
- subtree: true
299
- });
300
- }
301
- }
302
- return () => {
303
- if (!isSlideDisplayed) {
304
- observer.disconnect();
305
- }
306
- };
307
- }, [isSlideDisplayed, slideRef]);
308
- };
309
-
310
- const _excluded$3 = ["className", "children", "role", "label", "isDisplayed"];
311
-
312
- /**
313
- * Defines the props of the component.
314
- */
315
-
316
- /**
317
- * Component display name.
318
- */
319
- const COMPONENT_NAME$3 = 'SlideshowItemGroup';
320
-
321
- /**
322
- * Component default class name and class prefix.
323
- */
324
- const CLASSNAME$3 = getRootClassName(COMPONENT_NAME$3);
325
- const buildSlideShowGroupId = (slidesId, index) => `${slidesId}-slide-${index}`;
326
-
327
- /**
328
- * SlideshowItemGroup component.
329
- *
330
- * @param props Component props.
331
- * @param ref Component ref.
332
- * @return React element.
333
- */
334
- const SlideshowItemGroup = forwardRef((props, ref) => {
335
- const {
336
- className,
337
- children,
338
- role = 'group',
339
- label,
340
- isDisplayed
341
- } = props,
342
- forwardedProps = _objectWithoutProperties(props, _excluded$3);
343
- const groupRef = React__default.useRef(null);
344
- useSlideFocusManagement({
345
- isSlideDisplayed: isDisplayed,
346
- slideRef: groupRef
347
- });
348
- return /*#__PURE__*/React__default.createElement("div", _extends({
349
- ref: mergeRefs(groupRef, ref),
350
- role: role,
351
- className: classNames(className, handleBasicClasses({
352
- prefix: CLASSNAME$3
353
- })),
354
- "aria-roledescription": "slide",
355
- "aria-label": label
356
- }, forwardedProps), children);
357
- });
358
- SlideshowItemGroup.displayName = COMPONENT_NAME$3;
359
- SlideshowItemGroup.className = CLASSNAME$3;
360
-
361
- const _excluded$2 = ["className", "children"];
362
-
363
- /**
364
- * Defines the props of the component.
365
- */
366
-
367
- /**
368
- * Component display name.
369
- */
370
- const COMPONENT_NAME$2 = 'SlideshowItem';
371
-
372
- /**
373
- * Component default class name and class prefix.
374
- */
375
- const CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
376
-
377
- /**
378
- * SlideshowItem component.
379
- *
380
- * @param props Component props.
381
- * @param ref Component ref.
382
- * @return React element.
383
- */
384
- const SlideshowItem = forwardRef((props, ref) => {
385
- const {
386
- className,
387
- children
388
- } = props,
389
- forwardedProps = _objectWithoutProperties(props, _excluded$2);
390
- return /*#__PURE__*/React__default.createElement("div", _extends({
391
- ref: ref,
392
- className: classNames(className, handleBasicClasses({
393
- prefix: CLASSNAME$2
394
- }))
395
- }, forwardedProps), children);
396
- });
397
- SlideshowItem.displayName = COMPONENT_NAME$2;
398
- SlideshowItem.className = CLASSNAME$2;
399
-
400
- const isTouchDevice = () => 'ontouchstart' in window;
401
-
402
- /**
403
- * Listen swipe to navigate left and right.
404
- */
405
- function useSwipeNavigate(element, onNext, onPrevious) {
406
- useEffect(() => {
407
- if (!element || !isTouchDevice()) return undefined;
408
- return detectHorizontalSwipe(element, swipe => {
409
- const callback = swipe === 'right' ? onPrevious : onNext;
410
- callback === null || callback === void 0 ? void 0 : callback();
411
- });
412
- }, [onPrevious, onNext, element]);
413
- }
414
-
415
- /**
416
- * Calculate the currently visible pagination "bullet" range.
417
- */
418
- function usePaginationVisibleRange(activeIndex, slideCount) {
419
- const previousVisibleRangeRef = useRef();
420
- return useMemo(() => {
421
- const lastSlide = slideCount - 1;
422
- const {
423
- current: previousVisibleRange
424
- } = previousVisibleRangeRef;
425
- let newVisibleRange;
426
- if (activeIndex === (previousVisibleRange === null || previousVisibleRange === void 0 ? void 0 : previousVisibleRange.max) && activeIndex < lastSlide) {
427
- newVisibleRange = {
428
- min: previousVisibleRange.min + 1,
429
- max: previousVisibleRange.max + 1
430
- };
431
- } else if (activeIndex === (previousVisibleRange === null || previousVisibleRange === void 0 ? void 0 : previousVisibleRange.min) && activeIndex > 0) {
432
- newVisibleRange = {
433
- min: previousVisibleRange.min - 1,
434
- max: previousVisibleRange.max - 1
435
- };
436
- } else {
437
- const deltaItems = PAGINATION_ITEMS_MAX - 1;
438
- let min = activeIndex - EDGE_FROM_ACTIVE_INDEX;
439
- let max = activeIndex + EDGE_FROM_ACTIVE_INDEX;
440
- if (activeIndex > lastSlide - EDGE_FROM_ACTIVE_INDEX) {
441
- min = lastSlide - deltaItems;
442
- max = lastSlide;
443
- } else if (activeIndex < deltaItems) {
444
- min = 0;
445
- max = deltaItems;
446
- }
447
- newVisibleRange = {
448
- min,
449
- max
450
- };
451
- }
452
- previousVisibleRangeRef.current = newVisibleRange;
453
- return newVisibleRange;
454
- }, [activeIndex, slideCount]);
455
- }
456
-
457
- const _excluded$1 = ["activeIndex", "className", "nextButtonProps", "onNextClick", "onPaginationClick", "onPreviousClick", "parentRef", "previousButtonProps", "paginationProps", "slidesCount", "theme", "isAutoPlaying", "playButtonProps", "paginationItemLabel", "paginationItemProps"],
458
- _excluded2 = ["className", "label"];
459
-
460
- /**
461
- * Defines the props of the component.
462
- */
463
-
464
- /**
465
- * Component display name.
466
- */
467
- const COMPONENT_NAME$1 = 'SlideshowControls';
468
-
469
- /**
470
- * Component default class name and class prefix.
471
- */
472
- const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
473
-
474
- /**
475
- * Component default props.
476
- */
477
- const DEFAULT_PROPS = {
478
- activeIndex: 0
479
- };
480
-
481
- /**
482
- * SlideshowControls component.
483
- *
484
- * @param props Component props.
485
- * @param ref Component ref.
486
- * @return React element.
487
- */
488
- const InternalSlideshowControls = forwardRef((props, ref) => {
489
- const defaultTheme = useTheme() || Theme.light;
490
- const {
491
- activeIndex,
492
- className,
493
- nextButtonProps,
494
- onNextClick,
495
- onPaginationClick,
496
- onPreviousClick,
497
- parentRef,
498
- previousButtonProps,
499
- paginationProps,
500
- slidesCount,
501
- theme = defaultTheme,
502
- isAutoPlaying = false,
503
- playButtonProps,
504
- paginationItemLabel,
505
- paginationItemProps
506
- } = props,
507
- forwardedProps = _objectWithoutProperties(props, _excluded$1);
508
- let parent;
509
- if (WINDOW) {
510
- // Checking window object to avoid errors in SSR.
511
- parent = parentRef instanceof HTMLElement ? parentRef : parentRef === null || parentRef === void 0 ? void 0 : parentRef.current;
512
- }
513
- const paginationRef = React__default.useRef(null);
514
- // Listen to touch swipe navigate left & right.
515
- useSwipeNavigate(parent,
516
- // Go next without loopback.
517
- useCallback(() => onNextClick === null || onNextClick === void 0 ? void 0 : onNextClick(false), [onNextClick]),
518
- // Go previous without loopback.
519
- useCallback(() => onPreviousClick === null || onPreviousClick === void 0 ? void 0 : onPreviousClick(false), [onPreviousClick]));
520
-
521
- /**
522
- * Add roving tab index pattern to pagination items and activate slide on focus.
523
- */
524
- useRovingTabIndex({
525
- parentRef: paginationRef,
526
- elementSelector: 'button',
527
- keepTabIndex: true,
528
- onElementFocus: element => {
529
- element.click();
530
- }
531
- });
532
-
533
- // Pagination "bullet" range.
534
- const visibleRange = usePaginationVisibleRange(activeIndex, slidesCount);
535
-
536
- // Inline style of wrapper element.
537
- const wrapperStyle = {
538
- transform: `translateX(-${PAGINATION_ITEM_SIZE * visibleRange.min}px)`
539
- };
540
- return /*#__PURE__*/React__default.createElement("div", _extends({
541
- ref: ref
542
- }, forwardedProps, {
543
- className: classNames(className, handleBasicClasses({
544
- prefix: CLASSNAME$1,
545
- theme
546
- }), {
547
- [`${CLASSNAME$1}--has-infinite-pagination`]: slidesCount > PAGINATION_ITEMS_MAX
548
- })
549
- }), /*#__PURE__*/React__default.createElement(IconButton, _extends({}, previousButtonProps, {
550
- icon: mdiChevronLeft,
551
- className: `${CLASSNAME$1}__navigation`,
552
- color: theme === Theme.dark ? 'light' : 'dark',
553
- emphasis: Emphasis.low,
554
- onClick: onPreviousClick
555
- })), /*#__PURE__*/React__default.createElement("div", {
556
- ref: paginationRef,
557
- className: `${CLASSNAME$1}__pagination`
558
- }, /*#__PURE__*/React__default.createElement("div", _extends({
559
- className: `${CLASSNAME$1}__pagination-items`,
560
- style: wrapperStyle,
561
- role: "tablist"
562
- }, paginationProps), useMemo(() => range(slidesCount).map(index => {
563
- const isOnEdge = index !== 0 && index !== slidesCount - 1 && (index === visibleRange.min || index === visibleRange.max);
564
- const isActive = activeIndex === index;
565
- const isOutRange = index < visibleRange.min || index > visibleRange.max;
566
- const _ref = paginationItemProps ? paginationItemProps(index) : {},
567
- {
568
- className: itemClassName = undefined,
569
- label = undefined
570
- } = _ref,
571
- itemProps = _objectWithoutProperties(_ref, _excluded2);
572
- const ariaLabel = label || (paginationItemLabel === null || paginationItemLabel === void 0 ? void 0 : paginationItemLabel(index)) || `${index + 1} / ${slidesCount}`;
573
- return /*#__PURE__*/React__default.createElement("button", _extends({
574
- className: classNames(handleBasicClasses({
575
- prefix: `${CLASSNAME$1}__pagination-item`,
576
- isActive,
577
- isOnEdge,
578
- isOutRange
579
- }), itemClassName),
580
- key: index,
581
- type: "button",
582
- tabIndex: isActive ? undefined : -1,
583
- role: "tab",
584
- "aria-selected": isActive,
585
- onClick: () => onPaginationClick === null || onPaginationClick === void 0 ? void 0 : onPaginationClick(index),
586
- "aria-label": ariaLabel
587
- }, itemProps));
588
- }), [slidesCount, visibleRange.min, visibleRange.max, activeIndex, paginationItemProps, paginationItemLabel, onPaginationClick]))), playButtonProps ? /*#__PURE__*/React__default.createElement(IconButton, _extends({}, playButtonProps, {
589
- icon: isAutoPlaying ? mdiPauseCircleOutline : mdiPlayCircleOutline,
590
- className: `${CLASSNAME$1}__play`,
591
- color: theme === Theme.dark ? 'light' : 'dark',
592
- emphasis: Emphasis.low
593
- })) : null, /*#__PURE__*/React__default.createElement(IconButton, _extends({}, nextButtonProps, {
594
- icon: mdiChevronRight,
595
- className: `${CLASSNAME$1}__navigation`,
596
- color: theme === Theme.dark ? 'light' : 'dark',
597
- emphasis: Emphasis.low,
598
- onClick: onNextClick
599
- })));
600
- });
601
- InternalSlideshowControls.displayName = COMPONENT_NAME$1;
602
- InternalSlideshowControls.className = CLASSNAME$1;
603
- InternalSlideshowControls.defaultProps = DEFAULT_PROPS;
604
- const SlideshowControls = Object.assign(InternalSlideshowControls, {
605
- useSlideshowControls,
606
- useSlideshowControlsDefaultOptions: DEFAULT_OPTIONS
607
- });
608
-
609
- const _excluded = ["activeIndex", "id", "className", "theme", "fillHeight", "groupBy", "isAutoPlaying", "toggleAutoPlay", "slidesId", "children", "afterSlides", "hasControls", "slideGroupLabel"];
610
- /**
611
- * Component display name.
612
- */
613
- const COMPONENT_NAME = 'Slideshow';
614
-
615
- /**
616
- * Component default class name and class prefix.
617
- */
618
- const CLASSNAME = getRootClassName(COMPONENT_NAME);
619
-
620
- /**
621
- * Slides component.
622
- *
623
- * @param props Component props.
624
- * @param ref Component ref.
625
- * @return React element.
626
- */
627
- const Slides = forwardRef((props, ref) => {
628
- const defaultTheme = useTheme();
629
- const {
630
- activeIndex,
631
- id,
632
- className,
633
- theme = defaultTheme,
634
- fillHeight,
635
- groupBy,
636
- isAutoPlaying,
637
- toggleAutoPlay,
638
- slidesId,
639
- children,
640
- afterSlides,
641
- hasControls,
642
- slideGroupLabel
643
- } = props,
644
- forwardedProps = _objectWithoutProperties(props, _excluded);
645
- const wrapperRef = React__default.useRef(null);
646
- const startIndexVisible = activeIndex;
647
- const endIndexVisible = startIndexVisible + 1;
648
-
649
- // Inline style of wrapper element.
650
- const wrapperStyle = {
651
- transform: `translateX(-${FULL_WIDTH_PERCENT * activeIndex}%)`
652
- };
653
- const groups = React__default.useMemo(() => {
654
- const childrenArray = Children.toArray(children);
655
- return groupBy && groupBy > 1 ? chunk(childrenArray, groupBy) : childrenArray;
656
- }, [children, groupBy]);
657
- return /*#__PURE__*/React__default.createElement("section", _extends({
658
- id: id,
659
- ref: ref
660
- }, forwardedProps, {
661
- className: classNames(className, handleBasicClasses({
662
- prefix: CLASSNAME,
663
- theme
664
- }), {
665
- [`${CLASSNAME}--fill-height`]: fillHeight,
666
- [`${CLASSNAME}--group-by-${groupBy}`]: Boolean(groupBy)
667
- }),
668
- "aria-roledescription": "carousel"
669
- }), /*#__PURE__*/React__default.createElement("div", {
670
- id: slidesId,
671
- className: `${CLASSNAME}__slides`,
672
- onMouseEnter: toggleAutoPlay,
673
- onMouseLeave: toggleAutoPlay,
674
- "aria-live": isAutoPlaying ? 'off' : 'polite'
675
- }, /*#__PURE__*/React__default.createElement("div", {
676
- ref: wrapperRef,
677
- className: `${CLASSNAME}__wrapper`,
678
- style: wrapperStyle
679
- }, groups.map((group, index) => /*#__PURE__*/React__default.createElement(SlideshowItemGroup, {
680
- key: index,
681
- id: slidesId && buildSlideShowGroupId(slidesId, index),
682
- role: hasControls ? 'tabpanel' : 'group',
683
- label: slideGroupLabel ? slideGroupLabel(index + 1, groups.length) : undefined,
684
- isDisplayed: index >= startIndexVisible && index < endIndexVisible
685
- }, group)))), afterSlides);
686
- });
687
- Slides.displayName = COMPONENT_NAME;
688
- Slides.className = CLASSNAME;
689
-
690
- export { DEFAULT_OPTIONS as D, SlideshowItem as S, SlideshowControls as a, Slides as b, buildSlideShowGroupId as c };
691
- //# sourceMappingURL=b8f2948d.js.map