@lumx/react 3.20.1-alpha.32 → 3.20.1-alpha.34

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 (688) hide show
  1. package/_internal/00560d40.js +11 -0
  2. package/_internal/00560d40.js.map +1 -0
  3. package/_internal/{components/grid-column-99652545.js → 00cc46ee.js} +2 -2
  4. package/_internal/00cc46ee.js.map +1 -0
  5. package/_internal/{useFocusTrap-c3c6378b.js → 0350c865.js} +5 -27
  6. package/_internal/0350c865.js.map +1 -0
  7. package/_internal/063618dc.js +21 -0
  8. package/_internal/063618dc.js.map +1 -0
  9. package/_internal/07f6dc7c.js +16 -0
  10. package/_internal/07f6dc7c.js.map +1 -0
  11. package/_internal/0846b7f3.js +4 -0
  12. package/_internal/0846b7f3.js.map +1 -0
  13. package/_internal/08948b47.js +109 -0
  14. package/_internal/08948b47.js.map +1 -0
  15. package/_internal/08b0de35.js +14 -0
  16. package/_internal/08b0de35.js.map +1 -0
  17. package/_internal/094c811d.js +24 -0
  18. package/_internal/094c811d.js.map +1 -0
  19. package/_internal/09d97180.js +18 -0
  20. package/_internal/09d97180.js.map +1 -0
  21. package/_internal/0a2c57a2.js +9 -0
  22. package/_internal/0a2c57a2.js.map +1 -0
  23. package/_internal/0a7f4911.js +64 -0
  24. package/_internal/0a7f4911.js.map +1 -0
  25. package/_internal/0aa9027f.js +10 -0
  26. package/_internal/0aa9027f.js.map +1 -0
  27. package/_internal/0c58c8e2.js +59 -0
  28. package/_internal/0c58c8e2.js.map +1 -0
  29. package/_internal/{Button-1b7d3b79.js → 0d7cc1e0.js} +8 -8
  30. package/_internal/0d7cc1e0.js.map +1 -0
  31. package/_internal/0db022d6.js +58 -0
  32. package/_internal/0db022d6.js.map +1 -0
  33. package/_internal/0e16222d.js +9 -0
  34. package/_internal/0e16222d.js.map +1 -0
  35. package/_internal/0f849025.js +4 -0
  36. package/_internal/0f849025.js.map +1 -0
  37. package/_internal/0fe87dc7.js +72 -0
  38. package/_internal/0fe87dc7.js.map +1 -0
  39. package/_internal/1060c47e.js +4 -0
  40. package/_internal/1060c47e.js.map +1 -0
  41. package/_internal/{isComponentType-e806b848.js → 111e65e5.js} +2 -2
  42. package/_internal/111e65e5.js.map +1 -0
  43. package/_internal/{useId-3a1facc0.js → 11687649.js} +2 -2
  44. package/_internal/11687649.js.map +1 -0
  45. package/_internal/14390eeb.js +7 -0
  46. package/_internal/14390eeb.js.map +1 -0
  47. package/_internal/145228a7.js +47 -0
  48. package/_internal/145228a7.js.map +1 -0
  49. package/_internal/{components/uploader-2e1b080e.js → 15fb66ce.js} +8 -8
  50. package/_internal/15fb66ce.js.map +1 -0
  51. package/_internal/160cf9fe.js +24 -0
  52. package/_internal/160cf9fe.js.map +1 -0
  53. package/_internal/1616343a.js +37 -0
  54. package/_internal/1616343a.js.map +1 -0
  55. package/_internal/{components/divider-0e93aa3d.js → 162672de.js} +3 -3
  56. package/_internal/162672de.js.map +1 -0
  57. package/_internal/168f211f.js +17 -0
  58. package/_internal/168f211f.js.map +1 -0
  59. package/_internal/{wrapChildrenIconWithSpaces-fb85a743.js → 16f5497d.js} +4 -4
  60. package/_internal/16f5497d.js.map +1 -0
  61. package/_internal/179a2989.js +129 -0
  62. package/_internal/179a2989.js.map +1 -0
  63. package/_internal/185778b8.js +4 -0
  64. package/_internal/185778b8.js.map +1 -0
  65. package/_internal/1afd2506.js +60 -0
  66. package/_internal/1afd2506.js.map +1 -0
  67. package/_internal/1c1cdfa2.js +159 -0
  68. package/_internal/1c1cdfa2.js.map +1 -0
  69. package/_internal/1c3b349b.js +4 -0
  70. package/_internal/1c3b349b.js.map +1 -0
  71. package/_internal/1d7267a1.js +173 -0
  72. package/_internal/1d7267a1.js.map +1 -0
  73. package/_internal/1df25415.js +53 -0
  74. package/_internal/1df25415.js.map +1 -0
  75. package/_internal/1ee5415f.js +27 -0
  76. package/_internal/1ee5415f.js.map +1 -0
  77. package/_internal/1ff933af.js +5 -0
  78. package/_internal/1ff933af.js.map +1 -0
  79. package/_internal/200c2ce1.js +17 -0
  80. package/_internal/200c2ce1.js.map +1 -0
  81. package/_internal/{index-77f213b1.js → 203b01d8.js} +6 -36
  82. package/_internal/203b01d8.js.map +1 -0
  83. package/_internal/2040beb8.js +169 -0
  84. package/_internal/2040beb8.js.map +1 -0
  85. package/_internal/20f07616.js +14 -0
  86. package/_internal/20f07616.js.map +1 -0
  87. package/_internal/215781b4.js +6 -0
  88. package/_internal/215781b4.js.map +1 -0
  89. package/_internal/{components/mosaic-c8084ee8.js → 226a2eac.js} +4 -4
  90. package/_internal/226a2eac.js.map +1 -0
  91. package/_internal/2291b633.js +52 -0
  92. package/_internal/2291b633.js.map +1 -0
  93. package/_internal/{components/inline-list-5ba8bb0f.js → 2403668c.js} +2 -2
  94. package/_internal/2403668c.js.map +1 -0
  95. package/_internal/24b48881.js +133 -0
  96. package/_internal/24b48881.js.map +1 -0
  97. package/_internal/2517d1d6.js +9 -0
  98. package/_internal/2517d1d6.js.map +1 -0
  99. package/_internal/256f8eff.js +4 -0
  100. package/_internal/256f8eff.js.map +1 -0
  101. package/_internal/{components/input-label-30d199c3.js → 26a92990.js} +3 -3
  102. package/_internal/26a92990.js.map +1 -0
  103. package/_internal/27a93417.js +223 -0
  104. package/_internal/27a93417.js.map +1 -0
  105. package/_internal/{mergeRefs-f0d7d6ea.js → 27df0cb6.js} +2 -2
  106. package/_internal/27df0cb6.js.map +1 -0
  107. package/_internal/28f344bd.js +52 -0
  108. package/_internal/28f344bd.js.map +1 -0
  109. package/_internal/2c5a950d.js +55 -0
  110. package/_internal/2c5a950d.js.map +1 -0
  111. package/_internal/2cdd9ec6.js +16 -0
  112. package/_internal/2cdd9ec6.js.map +1 -0
  113. package/_internal/2cfeae78.js +150 -0
  114. package/_internal/2cfeae78.js.map +1 -0
  115. package/_internal/{components/dropdown-25170b7c.js → 2d1acaa0.js} +8 -48
  116. package/_internal/2d1acaa0.js.map +1 -0
  117. package/_internal/2d69d0f5.js +4 -0
  118. package/_internal/2d69d0f5.js.map +1 -0
  119. package/_internal/2dcfa1df.js +18 -0
  120. package/_internal/2dcfa1df.js.map +1 -0
  121. package/_internal/2dff9a38.js +150 -0
  122. package/_internal/2dff9a38.js.map +1 -0
  123. package/_internal/2e5288d0.js +15 -0
  124. package/_internal/2e5288d0.js.map +1 -0
  125. package/_internal/2fc47dc4.js +133 -0
  126. package/_internal/2fc47dc4.js.map +1 -0
  127. package/_internal/30ecdee3.js +9 -0
  128. package/_internal/30ecdee3.js.map +1 -0
  129. package/_internal/{components/input-helper-2e4e49fd.js → 3119c1fe.js} +4 -15
  130. package/_internal/3119c1fe.js.map +1 -0
  131. package/_internal/31b6784b.js +14 -0
  132. package/_internal/31b6784b.js.map +1 -0
  133. package/_internal/341034b4.js +48 -0
  134. package/_internal/341034b4.js.map +1 -0
  135. package/_internal/341ceaa9.js +4 -0
  136. package/_internal/341ceaa9.js.map +1 -0
  137. package/_internal/355f875f.js +9 -0
  138. package/_internal/355f875f.js.map +1 -0
  139. package/_internal/{components/side-navigation-385825d4.js → 36008a95.js} +13 -49
  140. package/_internal/36008a95.js.map +1 -0
  141. package/_internal/378a6fb1.js +126 -0
  142. package/_internal/378a6fb1.js.map +1 -0
  143. package/_internal/37f5ba95.js +12 -0
  144. package/_internal/37f5ba95.js.map +1 -0
  145. package/_internal/{Portal-3f86608e.js → 38ac8c66.js} +3 -15
  146. package/_internal/38ac8c66.js.map +1 -0
  147. package/_internal/38ce97de.js +29 -0
  148. package/_internal/38ce97de.js.map +1 -0
  149. package/_internal/39534d28.js +30 -0
  150. package/_internal/39534d28.js.map +1 -0
  151. package/_internal/{ImageCaption-6f2f4131.js → 3996d544.js} +5 -5
  152. package/_internal/3996d544.js.map +1 -0
  153. package/_internal/3a7fd4bf.js +60 -0
  154. package/_internal/3a7fd4bf.js.map +1 -0
  155. package/_internal/3cfcb0a4.js +122 -0
  156. package/_internal/3cfcb0a4.js.map +1 -0
  157. package/_internal/3d5e1fd0.js +46 -0
  158. package/_internal/3d5e1fd0.js.map +1 -0
  159. package/_internal/3db5a3e4.js +258 -0
  160. package/_internal/3db5a3e4.js.map +1 -0
  161. package/_internal/{useBooleanState-2a3d237c.js → 3e2f0517.js} +2 -2
  162. package/_internal/3e2f0517.js.map +1 -0
  163. package/_internal/3eba1faf.js +87 -0
  164. package/_internal/3eba1faf.js.map +1 -0
  165. package/_internal/3f48eb48.js +73 -0
  166. package/_internal/3f48eb48.js.map +1 -0
  167. package/_internal/3f51175c.js +61 -0
  168. package/_internal/3f51175c.js.map +1 -0
  169. package/_internal/3f54fe9e.js +4 -0
  170. package/_internal/3f54fe9e.js.map +1 -0
  171. package/_internal/{components/text-field-8597b7f7.js → 41a8b20f.js} +13 -12
  172. package/_internal/41a8b20f.js.map +1 -0
  173. package/_internal/42b26576.js +4 -0
  174. package/_internal/42b26576.js.map +1 -0
  175. package/_internal/45ef51db.js +29 -0
  176. package/_internal/45ef51db.js.map +1 -0
  177. package/_internal/48148353.js +100 -0
  178. package/_internal/48148353.js.map +1 -0
  179. package/_internal/4bb19934.js +4 -0
  180. package/_internal/4bb19934.js.map +1 -0
  181. package/_internal/4c471276.js +75 -0
  182. package/_internal/4c471276.js.map +1 -0
  183. package/_internal/{components/image-block-4f3fe64c.js → 4c891480.js} +5 -5
  184. package/_internal/4c891480.js.map +1 -0
  185. package/_internal/4d540596.js +131 -0
  186. package/_internal/4d540596.js.map +1 -0
  187. package/_internal/4d751800.js +40 -0
  188. package/_internal/4d751800.js.map +1 -0
  189. package/_internal/4f71fd36.js +4 -0
  190. package/_internal/4f71fd36.js.map +1 -0
  191. package/_internal/507d9459.js +67 -0
  192. package/_internal/507d9459.js.map +1 -0
  193. package/_internal/5178b7ba.js +10 -0
  194. package/_internal/5178b7ba.js.map +1 -0
  195. package/_internal/51921a16.js +30 -0
  196. package/_internal/51921a16.js.map +1 -0
  197. package/_internal/535aa51f.js +44 -0
  198. package/_internal/535aa51f.js.map +1 -0
  199. package/_internal/{DisabledStateContext-ea04260d.js → 536517c5.js} +2 -2
  200. package/_internal/536517c5.js.map +1 -0
  201. package/_internal/53b8dea1.js +48 -0
  202. package/_internal/53b8dea1.js.map +1 -0
  203. package/_internal/5745f198.js +12 -0
  204. package/_internal/5745f198.js.map +1 -0
  205. package/_internal/57f2079b.js +10 -0
  206. package/_internal/57f2079b.js.map +1 -0
  207. package/_internal/{components/thumbnail-4928bba2.js → 58418448.js} +1 -2
  208. package/_internal/58418448.js.map +1 -0
  209. package/_internal/{index-d3e86bd8.js → 595d0e66.js} +5 -6
  210. package/_internal/595d0e66.js.map +1 -0
  211. package/_internal/{IconButton-e11b5e74.js → 5a0207d9.js} +7 -7
  212. package/_internal/5a0207d9.js.map +1 -0
  213. package/_internal/5a6b1aa5.js +139 -0
  214. package/_internal/5a6b1aa5.js.map +1 -0
  215. package/_internal/5c3e15ea.js +107 -0
  216. package/_internal/5c3e15ea.js.map +1 -0
  217. package/_internal/{components/lightbox-10ff28f9.js → 5c4e10a0.js} +14 -14
  218. package/_internal/5c4e10a0.js.map +1 -0
  219. package/_internal/5da9ff06.js +47 -0
  220. package/_internal/5da9ff06.js.map +1 -0
  221. package/_internal/60139f6a.js +9 -0
  222. package/_internal/60139f6a.js.map +1 -0
  223. package/_internal/612b7365.js +231 -0
  224. package/_internal/612b7365.js.map +1 -0
  225. package/_internal/612f6fb4.js +155 -0
  226. package/_internal/612f6fb4.js.map +1 -0
  227. package/_internal/617d453e.js +28 -0
  228. package/_internal/617d453e.js.map +1 -0
  229. package/_internal/{components/slider-78cfaa67.js → 62c6c615.js} +11 -43
  230. package/_internal/62c6c615.js.map +1 -0
  231. package/_internal/6417ddb1.js +24 -0
  232. package/_internal/6417ddb1.js.map +1 -0
  233. package/_internal/658e09de.js +7 -0
  234. package/_internal/658e09de.js.map +1 -0
  235. package/_internal/659a1cdd.js +144 -0
  236. package/_internal/659a1cdd.js.map +1 -0
  237. package/_internal/6671d28b.js +40 -0
  238. package/_internal/6671d28b.js.map +1 -0
  239. package/_internal/66950686.js +14 -0
  240. package/_internal/66950686.js.map +1 -0
  241. package/_internal/671b986c.js +14 -0
  242. package/_internal/671b986c.js.map +1 -0
  243. package/_internal/{components/notification-97a8a04a.js → 6893b89e.js} +10 -33
  244. package/_internal/6893b89e.js.map +1 -0
  245. package/_internal/68f13c1c.js +4 -0
  246. package/_internal/68f13c1c.js.map +1 -0
  247. package/_internal/{components/link-9d1bd2f6.js → 69eb2393.js} +6 -6
  248. package/_internal/69eb2393.js.map +1 -0
  249. package/_internal/{constants-d0e3f49e.js → 6af61e2f.js} +3 -3
  250. package/_internal/6af61e2f.js.map +1 -0
  251. package/_internal/{components/checkbox-f7751583.js → 6b510f5e.js} +11 -13
  252. package/_internal/6b510f5e.js.map +1 -0
  253. package/_internal/6b61b268.js +9 -0
  254. package/_internal/6b61b268.js.map +1 -0
  255. package/_internal/6f0ce1bb.js +67 -0
  256. package/_internal/6f0ce1bb.js.map +1 -0
  257. package/_internal/6f17bf65.js +8 -0
  258. package/_internal/6f17bf65.js.map +1 -0
  259. package/_internal/{close-circle-ef5d1aac.js → 6f37d603.js} +2 -2
  260. package/_internal/6f37d603.js.map +1 -0
  261. package/_internal/6f3bb7d6.js +16 -0
  262. package/_internal/6f3bb7d6.js.map +1 -0
  263. package/_internal/705f415e.js +67 -0
  264. package/_internal/705f415e.js.map +1 -0
  265. package/_internal/722ea461.js +9 -0
  266. package/_internal/722ea461.js.map +1 -0
  267. package/_internal/728684f6.js +6 -0
  268. package/_internal/728684f6.js.map +1 -0
  269. package/_internal/730f75dc.js +93 -0
  270. package/_internal/730f75dc.js.map +1 -0
  271. package/_internal/735bcfa5.js +38 -0
  272. package/_internal/735bcfa5.js.map +1 -0
  273. package/_internal/{ClickAwayProvider-7093ba23.js → 739f2f15.js} +4 -38
  274. package/_internal/739f2f15.js.map +1 -0
  275. package/_internal/7531ee4d.js +72 -0
  276. package/_internal/7531ee4d.js.map +1 -0
  277. package/_internal/75f285fb.js +104 -0
  278. package/_internal/75f285fb.js.map +1 -0
  279. package/_internal/78a9c3cd.js +4 -0
  280. package/_internal/78a9c3cd.js.map +1 -0
  281. package/_internal/7a2da67a.js +64 -0
  282. package/_internal/7a2da67a.js.map +1 -0
  283. package/_internal/7af4a428.js +39 -0
  284. package/_internal/7af4a428.js.map +1 -0
  285. package/_internal/7d4eb1c5.js +62 -0
  286. package/_internal/7d4eb1c5.js.map +1 -0
  287. package/_internal/{components/chip-1ed080fb.js → 7d9c0855.js} +2 -50
  288. package/_internal/7d9c0855.js.map +1 -0
  289. package/_internal/7eca7fcd.js +28 -0
  290. package/_internal/7eca7fcd.js.map +1 -0
  291. package/_internal/81a6a29a.js +55 -0
  292. package/_internal/81a6a29a.js.map +1 -0
  293. package/_internal/{components/user-block-5fd51607.js → 82159c03.js} +5 -5
  294. package/_internal/82159c03.js.map +1 -0
  295. package/_internal/82c6852b.js +19 -0
  296. package/_internal/82c6852b.js.map +1 -0
  297. package/_internal/{components/drag-handle-eec23fc2.js → 840e9690.js} +5 -6
  298. package/_internal/840e9690.js.map +1 -0
  299. package/_internal/{context-9d1336a1.js → 841c2303.js} +2 -2
  300. package/_internal/841c2303.js.map +1 -0
  301. package/_internal/8429fc80.js +141 -0
  302. package/_internal/8429fc80.js.map +1 -0
  303. package/_internal/84978777.js +55 -0
  304. package/_internal/84978777.js.map +1 -0
  305. package/_internal/{components/switch-24fea8d7.js → 851a3109.js} +7 -7
  306. package/_internal/851a3109.js.map +1 -0
  307. package/_internal/879fa64d.js +6 -0
  308. package/_internal/879fa64d.js.map +1 -0
  309. package/_internal/883321fd.js +17 -0
  310. package/_internal/883321fd.js.map +1 -0
  311. package/_internal/893eb653.js +4 -0
  312. package/_internal/893eb653.js.map +1 -0
  313. package/_internal/897e2dbb.js +80 -0
  314. package/_internal/897e2dbb.js.map +1 -0
  315. package/_internal/89ee5eb2.js +22 -0
  316. package/_internal/89ee5eb2.js.map +1 -0
  317. package/_internal/8acd6aff.js +82 -0
  318. package/_internal/8acd6aff.js.map +1 -0
  319. package/_internal/8d318b2b.js +138 -0
  320. package/_internal/8d318b2b.js.map +1 -0
  321. package/_internal/8e3efbc4.js +65 -0
  322. package/_internal/8e3efbc4.js.map +1 -0
  323. package/_internal/{useDisableBodyScroll-36bd7352.js → 8e8c5ab6.js} +2 -29
  324. package/_internal/8e8c5ab6.js.map +1 -0
  325. package/_internal/8fe4c01f.js +20 -0
  326. package/_internal/8fe4c01f.js.map +1 -0
  327. package/_internal/91f36a80.js +34 -0
  328. package/_internal/91f36a80.js.map +1 -0
  329. package/_internal/928fa938.js +102 -0
  330. package/_internal/928fa938.js.map +1 -0
  331. package/_internal/9361ef65.js +6 -0
  332. package/_internal/9361ef65.js.map +1 -0
  333. package/_internal/99513933.js +145 -0
  334. package/_internal/99513933.js.map +1 -0
  335. package/_internal/9976fe9a.js +28 -0
  336. package/_internal/9976fe9a.js.map +1 -0
  337. package/_internal/9a0544c4.js +34 -0
  338. package/_internal/9a0544c4.js.map +1 -0
  339. package/_internal/9a5db774.js +6 -0
  340. package/_internal/9a5db774.js.map +1 -0
  341. package/_internal/{components/radio-button-929c7bee.js → 9ae8998a.js} +21 -54
  342. package/_internal/9ae8998a.js.map +1 -0
  343. package/_internal/{ButtonRoot-a70baf82.js → 9b0c0489.js} +6 -6
  344. package/_internal/9b0c0489.js.map +1 -0
  345. package/_internal/9d063548.js +49 -0
  346. package/_internal/9d063548.js.map +1 -0
  347. package/_internal/{components/link-preview-9525e97f.js → 9e3b78fa.js} +5 -5
  348. package/_internal/9e3b78fa.js.map +1 -0
  349. package/_internal/a0a42aca.js +14 -0
  350. package/_internal/a0a42aca.js.map +1 -0
  351. package/_internal/{components/toolbar-e7c984e6.js → a1974f13.js} +2 -2
  352. package/_internal/a1974f13.js.map +1 -0
  353. package/_internal/a2b9eb60.js +90 -0
  354. package/_internal/a2b9eb60.js.map +1 -0
  355. package/_internal/a2c7c463.js +4 -0
  356. package/_internal/a2c7c463.js.map +1 -0
  357. package/_internal/a32628a1.js +4 -0
  358. package/_internal/a32628a1.js.map +1 -0
  359. package/_internal/a3f2000f.js +198 -0
  360. package/_internal/a3f2000f.js.map +1 -0
  361. package/_internal/a45cc1b9.js +128 -0
  362. package/_internal/a45cc1b9.js.map +1 -0
  363. package/_internal/a6be9f05.js +75 -0
  364. package/_internal/a6be9f05.js.map +1 -0
  365. package/_internal/{RawClickable-2c2b6a89.js → a6dc95cd.js} +3 -6
  366. package/_internal/a6dc95cd.js.map +1 -0
  367. package/_internal/a7abe967.js +20 -0
  368. package/_internal/a7abe967.js.map +1 -0
  369. package/_internal/{components/expansion-panel-df812318.js → a89bf7bc.js} +10 -9
  370. package/_internal/a89bf7bc.js.map +1 -0
  371. package/_internal/a9d0f94d.js +53 -0
  372. package/_internal/a9d0f94d.js.map +1 -0
  373. package/_internal/ab3e5463.js +39 -0
  374. package/_internal/ab3e5463.js.map +1 -0
  375. package/_internal/{components/generic-block-964b2724.js → ac3f7e4d.js} +6 -12
  376. package/_internal/ac3f7e4d.js.map +1 -0
  377. package/_internal/acd6bed6.js +6 -0
  378. package/_internal/acd6bed6.js.map +1 -0
  379. package/_internal/{close-eaf6c45a.js → ad7c38b0.js} +2 -2
  380. package/_internal/ad7c38b0.js.map +1 -0
  381. package/_internal/ae4dc9f0.js +62 -0
  382. package/_internal/ae4dc9f0.js.map +1 -0
  383. package/_internal/aeba575c.js +4 -0
  384. package/_internal/aeba575c.js.map +1 -0
  385. package/_internal/b0780b33.js +60 -0
  386. package/_internal/b0780b33.js.map +1 -0
  387. package/_internal/b0846836.js +4 -0
  388. package/_internal/b0846836.js.map +1 -0
  389. package/_internal/b1154f4b.js +14 -0
  390. package/_internal/b1154f4b.js.map +1 -0
  391. package/_internal/{Chip-8fbedc93.js → b125b718.js} +6 -22
  392. package/_internal/b125b718.js.map +1 -0
  393. package/_internal/b23a92ab.js +56 -0
  394. package/_internal/b23a92ab.js.map +1 -0
  395. package/_internal/b4018f8d.js +107 -0
  396. package/_internal/b4018f8d.js.map +1 -0
  397. package/_internal/b402784b.js +11 -0
  398. package/_internal/b402784b.js.map +1 -0
  399. package/_internal/b4dfa648.js +32 -0
  400. package/_internal/b4dfa648.js.map +1 -0
  401. package/_internal/b573621e.js +26 -0
  402. package/_internal/b573621e.js.map +1 -0
  403. package/_internal/b5edf49e.js +8 -0
  404. package/_internal/b5edf49e.js.map +1 -0
  405. package/_internal/b85a5f3f.js +57 -0
  406. package/_internal/b85a5f3f.js.map +1 -0
  407. package/_internal/b93aa71c.js +89 -0
  408. package/_internal/b93aa71c.js.map +1 -0
  409. package/_internal/b977b471.js +5 -0
  410. package/_internal/b977b471.js.map +1 -0
  411. package/_internal/{components/message-edd6a28a.js → b9e3e436.js} +9 -7
  412. package/_internal/b9e3e436.js.map +1 -0
  413. package/_internal/b9ed1f7a.js +4 -0
  414. package/_internal/b9ed1f7a.js.map +1 -0
  415. package/_internal/{components/button-c4127e86.js → bae815e2.js} +2 -4
  416. package/_internal/bae815e2.js.map +1 -0
  417. package/_internal/bb05343d.js +36 -0
  418. package/_internal/bb05343d.js.map +1 -0
  419. package/_internal/bb5fb0f9.js +28 -0
  420. package/_internal/bb5fb0f9.js.map +1 -0
  421. package/_internal/{useRovingTabIndex-7daf0f24.js → bb8088e1.js} +2 -2
  422. package/_internal/bb8088e1.js.map +1 -0
  423. package/_internal/bc393aec.js +8 -0
  424. package/_internal/bc393aec.js.map +1 -0
  425. package/_internal/{components/heading-6cc0f178.js → bd1cd49f.js} +6 -6
  426. package/_internal/bd1cd49f.js.map +1 -0
  427. package/_internal/{forwardRef-8bce732e.js → bd8b3ec8.js} +2 -2
  428. package/_internal/bd8b3ec8.js.map +1 -0
  429. package/_internal/be29f79e.js +52 -0
  430. package/_internal/be29f79e.js.map +1 -0
  431. package/_internal/bf202fa2.js +47 -0
  432. package/_internal/bf202fa2.js.map +1 -0
  433. package/_internal/bf411e5a.js +109 -0
  434. package/_internal/bf411e5a.js.map +1 -0
  435. package/_internal/c01c3bec.js +12 -0
  436. package/_internal/c01c3bec.js.map +1 -0
  437. package/_internal/{getFocusableElements-230173a8.js → c0a6dba6.js} +2 -7
  438. package/_internal/c0a6dba6.js.map +1 -0
  439. package/_internal/{components/post-block-7e63c4f4.js → c241db12.js} +5 -5
  440. package/_internal/c241db12.js.map +1 -0
  441. package/_internal/c3ccd387.js +20 -0
  442. package/_internal/c3ccd387.js.map +1 -0
  443. package/_internal/{components/alert-dialog-5326cf04.js → c51d37f8.js} +11 -9
  444. package/_internal/c51d37f8.js.map +1 -0
  445. package/_internal/c625d242.js +14 -0
  446. package/_internal/c625d242.js.map +1 -0
  447. package/_internal/c72d4f8b.js +4 -0
  448. package/_internal/c72d4f8b.js.map +1 -0
  449. package/_internal/c9a3b27f.js +6 -0
  450. package/_internal/c9a3b27f.js.map +1 -0
  451. package/_internal/c9bd0e84.js +29 -0
  452. package/_internal/c9bd0e84.js.map +1 -0
  453. package/_internal/{partitionMulti-4daccdd5.js → cb19eca6.js} +2 -2
  454. package/_internal/cb19eca6.js.map +1 -0
  455. package/_internal/cb525c68.js +165 -0
  456. package/_internal/cb525c68.js.map +1 -0
  457. package/_internal/cb7ac456.js +165 -0
  458. package/_internal/cb7ac456.js.map +1 -0
  459. package/_internal/{components/comment-block-343e1922.js → cc5cac50.js} +5 -5
  460. package/_internal/cc5cac50.js.map +1 -0
  461. package/_internal/{components/dialog-d0e090b1.js → cd8457fc.js} +17 -47
  462. package/_internal/cd8457fc.js.map +1 -0
  463. package/_internal/d0b96efd.js +8 -0
  464. package/_internal/d0b96efd.js.map +1 -0
  465. package/_internal/d3286249.js +72 -0
  466. package/_internal/d3286249.js.map +1 -0
  467. package/_internal/d57d3fc6.js +6 -0
  468. package/_internal/d57d3fc6.js.map +1 -0
  469. package/_internal/d5f5f3f5.js +18 -0
  470. package/_internal/d5f5f3f5.js.map +1 -0
  471. package/_internal/d672fc0e.js +24 -0
  472. package/_internal/d672fc0e.js.map +1 -0
  473. package/_internal/d7ee7efe.js +40 -0
  474. package/_internal/d7ee7efe.js.map +1 -0
  475. package/_internal/{ThemeContext-3181f000.js → d8ee966d.js} +2 -2
  476. package/_internal/d8ee966d.js.map +1 -0
  477. package/_internal/db88500d.js +10 -0
  478. package/_internal/db88500d.js.map +1 -0
  479. package/_internal/dbc379f8.js +45 -0
  480. package/_internal/dbc379f8.js.map +1 -0
  481. package/_internal/dbe906f1.js +179 -0
  482. package/_internal/dbe906f1.js.map +1 -0
  483. package/_internal/de52a4b9.js +20 -0
  484. package/_internal/de52a4b9.js.map +1 -0
  485. package/_internal/df688aab.js +121 -0
  486. package/_internal/df688aab.js.map +1 -0
  487. package/_internal/dfa00cf7.js +35 -0
  488. package/_internal/dfa00cf7.js.map +1 -0
  489. package/_internal/{state-db358714.js → e0398237.js} +3 -3
  490. package/_internal/e0398237.js.map +1 -0
  491. package/_internal/e142a98d.js +22 -0
  492. package/_internal/e142a98d.js.map +1 -0
  493. package/_internal/e429bd82.js +12 -0
  494. package/_internal/e429bd82.js.map +1 -0
  495. package/_internal/{check-circle-de24f857.js → e47dacb8.js} +2 -2
  496. package/_internal/e47dacb8.js.map +1 -0
  497. package/_internal/e4a199c0.js +20 -0
  498. package/_internal/e4a199c0.js.map +1 -0
  499. package/_internal/e50f2a75.js +27 -0
  500. package/_internal/e50f2a75.js.map +1 -0
  501. package/_internal/{components/slideshow-e0880d40.js → e5657997.js} +11 -32
  502. package/_internal/e5657997.js.map +1 -0
  503. package/_internal/e7aa44d1.js +13 -0
  504. package/_internal/e7aa44d1.js.map +1 -0
  505. package/_internal/e8e4d09e.js +95 -0
  506. package/_internal/e8e4d09e.js.map +1 -0
  507. package/_internal/e918f20b.js +57 -0
  508. package/_internal/e918f20b.js.map +1 -0
  509. package/_internal/e9c3b1e0.js +4 -0
  510. package/_internal/e9c3b1e0.js.map +1 -0
  511. package/_internal/ebd44733.js +7 -0
  512. package/_internal/ebd44733.js.map +1 -0
  513. package/_internal/{isComponent-78df9309.js → ebe24fd7.js} +2 -2
  514. package/_internal/ebe24fd7.js.map +1 -0
  515. package/_internal/ed03c692.js +17 -0
  516. package/_internal/ed03c692.js.map +1 -0
  517. package/_internal/eea52073.js +27 -0
  518. package/_internal/eea52073.js.map +1 -0
  519. package/_internal/eec574e6.js +40 -0
  520. package/_internal/eec574e6.js.map +1 -0
  521. package/_internal/eef5d63f.js +21 -0
  522. package/_internal/eef5d63f.js.map +1 -0
  523. package/_internal/ef907c21.js +41 -0
  524. package/_internal/ef907c21.js.map +1 -0
  525. package/_internal/{useDisableStateProps-69e16b7c.js → ef982c3d.js} +3 -3
  526. package/_internal/ef982c3d.js.map +1 -0
  527. package/_internal/f0052b9b.js +27 -0
  528. package/_internal/f0052b9b.js.map +1 -0
  529. package/_internal/f2e34298.js +75 -0
  530. package/_internal/f2e34298.js.map +1 -0
  531. package/_internal/f419ecef.js +4 -0
  532. package/_internal/f419ecef.js.map +1 -0
  533. package/_internal/f4baa1da.js +34 -0
  534. package/_internal/f4baa1da.js.map +1 -0
  535. package/_internal/{useTransitionVisibility-321fdbfa.js → f6bc7948.js} +3 -8
  536. package/_internal/f6bc7948.js.map +1 -0
  537. package/_internal/f7520b8e.js +52 -0
  538. package/_internal/f7520b8e.js.map +1 -0
  539. package/_internal/f8c49b24.js +14 -0
  540. package/_internal/f8c49b24.js.map +1 -0
  541. package/_internal/fb201a04.js +65 -0
  542. package/_internal/fb201a04.js.map +1 -0
  543. package/_internal/fb36ff46.js +51 -0
  544. package/_internal/fb36ff46.js.map +1 -0
  545. package/_internal/{components/flag-c8d690bc.js → fcc7c462.js} +5 -5
  546. package/_internal/fcc7c462.js.map +1 -0
  547. package/_internal/fcf83937.js +28 -0
  548. package/_internal/fcf83937.js.map +1 -0
  549. package/_internal/fd3e2f21.js +30 -0
  550. package/_internal/fd3e2f21.js.map +1 -0
  551. package/_internal/fdcf3942.js +157 -0
  552. package/_internal/fdcf3942.js.map +1 -0
  553. package/_internal/{components/flex-box-4eeba972.js → fdebc718.js} +2 -2
  554. package/_internal/fdebc718.js.map +1 -0
  555. package/_internal/ff96951d.js +8 -0
  556. package/_internal/ff96951d.js.map +1 -0
  557. package/_internal/{components/avatar-52bb217f.js → ffb2f7fa.js} +4 -4
  558. package/_internal/ffb2f7fa.js.map +1 -0
  559. package/index.js +95 -63
  560. package/index.js.map +1 -1
  561. package/package.json +3 -3
  562. package/utils/index.js +4 -3
  563. package/utils/index.js.map +1 -1
  564. package/_internal/Button-1b7d3b79.js.map +0 -1
  565. package/_internal/ButtonRoot-a70baf82.js.map +0 -1
  566. package/_internal/Chip-8fbedc93.js.map +0 -1
  567. package/_internal/ClickAwayProvider-7093ba23.js.map +0 -1
  568. package/_internal/DisabledStateContext-ea04260d.js.map +0 -1
  569. package/_internal/HeadingLevelProvider-ebdcb0c7.js +0 -61
  570. package/_internal/HeadingLevelProvider-ebdcb0c7.js.map +0 -1
  571. package/_internal/IconButton-e11b5e74.js.map +0 -1
  572. package/_internal/ImageCaption-6f2f4131.js.map +0 -1
  573. package/_internal/List-4e95288a.js +0 -820
  574. package/_internal/List-4e95288a.js.map +0 -1
  575. package/_internal/PopoverDialog-d85ff977.js +0 -656
  576. package/_internal/PopoverDialog-d85ff977.js.map +0 -1
  577. package/_internal/Portal-3f86608e.js.map +0 -1
  578. package/_internal/RawClickable-2c2b6a89.js.map +0 -1
  579. package/_internal/Slides-68a7d0e6.js +0 -683
  580. package/_internal/Slides-68a7d0e6.js.map +0 -1
  581. package/_internal/ThemeContext-3181f000.js.map +0 -1
  582. package/_internal/Thumbnail-22bbea7e.js +0 -315
  583. package/_internal/Thumbnail-22bbea7e.js.map +0 -1
  584. package/_internal/check-circle-de24f857.js.map +0 -1
  585. package/_internal/chevron-right-827b804a.js +0 -6
  586. package/_internal/chevron-right-827b804a.js.map +0 -1
  587. package/_internal/chevron-up-0b9c76cb.js +0 -6
  588. package/_internal/chevron-up-0b9c76cb.js.map +0 -1
  589. package/_internal/close-circle-ef5d1aac.js.map +0 -1
  590. package/_internal/close-eaf6c45a.js.map +0 -1
  591. package/_internal/components/alert-dialog-5326cf04.js.map +0 -1
  592. package/_internal/components/autocomplete-7d9581e8.js +0 -262
  593. package/_internal/components/autocomplete-7d9581e8.js.map +0 -1
  594. package/_internal/components/avatar-52bb217f.js.map +0 -1
  595. package/_internal/components/badge-ccf47147.js +0 -82
  596. package/_internal/components/badge-ccf47147.js.map +0 -1
  597. package/_internal/components/button-c4127e86.js.map +0 -1
  598. package/_internal/components/checkbox-f7751583.js.map +0 -1
  599. package/_internal/components/chip-1ed080fb.js.map +0 -1
  600. package/_internal/components/comment-block-343e1922.js.map +0 -1
  601. package/_internal/components/date-picker-b6b3dc77.js +0 -2
  602. package/_internal/components/date-picker-b6b3dc77.js.map +0 -1
  603. package/_internal/components/dialog-d0e090b1.js.map +0 -1
  604. package/_internal/components/divider-0e93aa3d.js.map +0 -1
  605. package/_internal/components/drag-handle-eec23fc2.js.map +0 -1
  606. package/_internal/components/dropdown-25170b7c.js.map +0 -1
  607. package/_internal/components/expansion-panel-df812318.js.map +0 -1
  608. package/_internal/components/flag-c8d690bc.js.map +0 -1
  609. package/_internal/components/flex-box-4eeba972.js.map +0 -1
  610. package/_internal/components/generic-block-964b2724.js.map +0 -1
  611. package/_internal/components/grid-8c08dc4b.js +0 -105
  612. package/_internal/components/grid-8c08dc4b.js.map +0 -1
  613. package/_internal/components/grid-column-99652545.js.map +0 -1
  614. package/_internal/components/heading-6cc0f178.js.map +0 -1
  615. package/_internal/components/icon-9cf785b1.js +0 -2
  616. package/_internal/components/icon-9cf785b1.js.map +0 -1
  617. package/_internal/components/image-block-4f3fe64c.js.map +0 -1
  618. package/_internal/components/image-lightbox-7b172571.js +0 -760
  619. package/_internal/components/image-lightbox-7b172571.js.map +0 -1
  620. package/_internal/components/inline-list-5ba8bb0f.js.map +0 -1
  621. package/_internal/components/input-helper-2e4e49fd.js.map +0 -1
  622. package/_internal/components/input-label-30d199c3.js.map +0 -1
  623. package/_internal/components/lightbox-10ff28f9.js.map +0 -1
  624. package/_internal/components/link-9d1bd2f6.js.map +0 -1
  625. package/_internal/components/link-preview-9525e97f.js.map +0 -1
  626. package/_internal/components/list-c8c7a6eb.js +0 -72
  627. package/_internal/components/list-c8c7a6eb.js.map +0 -1
  628. package/_internal/components/message-edd6a28a.js.map +0 -1
  629. package/_internal/components/mosaic-c8084ee8.js.map +0 -1
  630. package/_internal/components/navigation-c9121998.js +0 -226
  631. package/_internal/components/navigation-c9121998.js.map +0 -1
  632. package/_internal/components/notification-97a8a04a.js.map +0 -1
  633. package/_internal/components/popover-f93484cd.js +0 -3
  634. package/_internal/components/popover-f93484cd.js.map +0 -1
  635. package/_internal/components/post-block-7e63c4f4.js.map +0 -1
  636. package/_internal/components/progress-44bb0301.js +0 -183
  637. package/_internal/components/progress-44bb0301.js.map +0 -1
  638. package/_internal/components/progress-tracker-c9758d83.js +0 -310
  639. package/_internal/components/progress-tracker-c9758d83.js.map +0 -1
  640. package/_internal/components/radio-button-929c7bee.js.map +0 -1
  641. package/_internal/components/select-bea40e77.js +0 -459
  642. package/_internal/components/select-bea40e77.js.map +0 -1
  643. package/_internal/components/side-navigation-385825d4.js.map +0 -1
  644. package/_internal/components/skeleton-1ea8c82a.js +0 -167
  645. package/_internal/components/skeleton-1ea8c82a.js.map +0 -1
  646. package/_internal/components/slider-78cfaa67.js.map +0 -1
  647. package/_internal/components/slideshow-e0880d40.js.map +0 -1
  648. package/_internal/components/switch-24fea8d7.js.map +0 -1
  649. package/_internal/components/table-834af792.js +0 -298
  650. package/_internal/components/table-834af792.js.map +0 -1
  651. package/_internal/components/tabs-bebfe959.js +0 -299
  652. package/_internal/components/tabs-bebfe959.js.map +0 -1
  653. package/_internal/components/text-9074f440.js +0 -2
  654. package/_internal/components/text-9074f440.js.map +0 -1
  655. package/_internal/components/text-field-8597b7f7.js.map +0 -1
  656. package/_internal/components/thumbnail-4928bba2.js.map +0 -1
  657. package/_internal/components/toolbar-e7c984e6.js.map +0 -1
  658. package/_internal/components/tooltip-21018736.js +0 -328
  659. package/_internal/components/tooltip-21018736.js.map +0 -1
  660. package/_internal/components/uploader-2e1b080e.js.map +0 -1
  661. package/_internal/components/user-block-5fd51607.js.map +0 -1
  662. package/_internal/constants-43721918.js +0 -2170
  663. package/_internal/constants-43721918.js.map +0 -1
  664. package/_internal/constants-d0e3f49e.js.map +0 -1
  665. package/_internal/context-9d1336a1.js.map +0 -1
  666. package/_internal/forwardRef-8bce732e.js.map +0 -1
  667. package/_internal/getFocusableElements-230173a8.js.map +0 -1
  668. package/_internal/index-77f213b1.js.map +0 -1
  669. package/_internal/index-aa6d1d90.js +0 -437
  670. package/_internal/index-aa6d1d90.js.map +0 -1
  671. package/_internal/index-d3e86bd8.js.map +0 -1
  672. package/_internal/information-49bbeed3.js +0 -6
  673. package/_internal/information-49bbeed3.js.map +0 -1
  674. package/_internal/isComponent-78df9309.js.map +0 -1
  675. package/_internal/isComponentType-e806b848.js.map +0 -1
  676. package/_internal/mergeRefs-f0d7d6ea.js.map +0 -1
  677. package/_internal/partitionMulti-4daccdd5.js.map +0 -1
  678. package/_internal/state-db358714.js.map +0 -1
  679. package/_internal/useBooleanState-2a3d237c.js.map +0 -1
  680. package/_internal/useCallbackOnEscape-ea4d9eb4.js +0 -62
  681. package/_internal/useCallbackOnEscape-ea4d9eb4.js.map +0 -1
  682. package/_internal/useDisableBodyScroll-36bd7352.js.map +0 -1
  683. package/_internal/useDisableStateProps-69e16b7c.js.map +0 -1
  684. package/_internal/useFocusTrap-c3c6378b.js.map +0 -1
  685. package/_internal/useId-3a1facc0.js.map +0 -1
  686. package/_internal/useRovingTabIndex-7daf0f24.js.map +0 -1
  687. package/_internal/useTransitionVisibility-321fdbfa.js.map +0 -1
  688. package/_internal/wrapChildrenIconWithSpaces-fb85a743.js.map +0 -1
@@ -0,0 +1,129 @@
1
+ import { useCallback } from 'react';
2
+ import classNames from 'classnames';
3
+ import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
4
+ import { forwardRef } from './bd8b3ec8.js';
5
+ import { useDisableStateProps } from './ef982c3d.js';
6
+ import { useTabProviderContext } from './e0398237.js';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+ import { mdiRadioboxMarked } from './a2c7c463.js';
9
+ import { mdiRadioboxBlank } from './4f71fd36.js';
10
+ import { Icon } from './595d0e66.js';
11
+ import { Size, Kind } from '@lumx/core/js/constants';
12
+ import { InputLabel } from './26a92990.js';
13
+ import { InputHelper } from './3119c1fe.js';
14
+ import { mdiCheckCircle } from './e47dacb8.js';
15
+ import { mdiAlertCircle } from './893eb653.js';
16
+
17
+ /**
18
+ * Component display name.
19
+ */
20
+ const COMPONENT_NAME = 'ProgressTrackerStep';
21
+
22
+ /**
23
+ * Component default class name and class prefix.
24
+ */
25
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
26
+
27
+ /**
28
+ * Component default props.
29
+ */
30
+ const DEFAULT_PROPS = {};
31
+
32
+ /**
33
+ * ProgressTrackerStep component.
34
+ *
35
+ * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
36
+ *
37
+ * @param props Component props.
38
+ * @param ref Component ref.
39
+ * @return React element.
40
+ */
41
+ const ProgressTrackerStep = forwardRef((props, ref) => {
42
+ const {
43
+ isAnyDisabled,
44
+ otherProps
45
+ } = useDisableStateProps(props);
46
+ const {
47
+ className,
48
+ hasError,
49
+ helper,
50
+ id,
51
+ isActive: propIsActive,
52
+ isComplete,
53
+ label,
54
+ onFocus,
55
+ onKeyPress,
56
+ tabIndex = -1,
57
+ ...forwardedProps
58
+ } = otherProps;
59
+ const state = useTabProviderContext('tab', id);
60
+ const isActive = propIsActive || state?.isActive;
61
+ const changeToCurrentTab = useCallback(() => {
62
+ if (isAnyDisabled) {
63
+ return;
64
+ }
65
+ state?.changeToTab();
66
+ }, [isAnyDisabled, state]);
67
+ const handleFocus = useCallback(event => {
68
+ onFocus?.(event);
69
+ if (state?.shouldActivateOnFocus) {
70
+ changeToCurrentTab();
71
+ }
72
+ }, [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus]);
73
+ const handleKeyPress = useCallback(event => {
74
+ onKeyPress?.(event);
75
+ if (event.key !== 'Enter') {
76
+ return;
77
+ }
78
+ changeToCurrentTab();
79
+ }, [changeToCurrentTab, onKeyPress]);
80
+ const getIcon = () => {
81
+ if (isComplete) {
82
+ return mdiCheckCircle;
83
+ }
84
+ if (isActive) {
85
+ return hasError ? mdiAlertCircle : mdiRadioboxMarked;
86
+ }
87
+ return mdiRadioboxBlank;
88
+ };
89
+ return /*#__PURE__*/jsxs("button", {
90
+ ref: ref,
91
+ ...forwardedProps,
92
+ type: "button",
93
+ id: state?.tabId,
94
+ className: classNames(className, handleBasicClasses({
95
+ prefix: CLASSNAME,
96
+ hasError,
97
+ isActive,
98
+ isClickable: state && !isAnyDisabled,
99
+ isComplete
100
+ })),
101
+ onClick: changeToCurrentTab,
102
+ onKeyPress: handleKeyPress,
103
+ onFocus: handleFocus,
104
+ role: "tab",
105
+ tabIndex: isActive ? 0 : tabIndex,
106
+ "aria-disabled": isAnyDisabled,
107
+ "aria-selected": isActive,
108
+ "aria-controls": state?.tabPanelId,
109
+ children: [/*#__PURE__*/jsx(Icon, {
110
+ className: `${CLASSNAME}__state`,
111
+ icon: getIcon(),
112
+ size: Size.s
113
+ }), /*#__PURE__*/jsx(InputLabel, {
114
+ htmlFor: state?.tabId || '',
115
+ className: `${CLASSNAME}__label`,
116
+ children: label
117
+ }), helper && /*#__PURE__*/jsx(InputHelper, {
118
+ kind: hasError ? Kind.error : Kind.info,
119
+ className: `${CLASSNAME}__helper`,
120
+ children: helper
121
+ })]
122
+ });
123
+ });
124
+ ProgressTrackerStep.displayName = COMPONENT_NAME;
125
+ ProgressTrackerStep.className = CLASSNAME;
126
+ ProgressTrackerStep.defaultProps = DEFAULT_PROPS;
127
+
128
+ export { ProgressTrackerStep };
129
+ //# sourceMappingURL=179a2989.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"179a2989.js","sources":["../../src/components/progress-tracker/ProgressTrackerStep.tsx"],"sourcesContent":["import { FocusEventHandler, KeyboardEventHandler, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiRadioboxBlank, mdiRadioboxMarked } from '@lumx/icons';\nimport { Icon, InputHelper, InputLabel, Kind, Size } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\nimport { useTabProviderContext } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Whether the step should be in error state or not. */\n hasError?: boolean;\n /** Helper text. */\n helper?: string | null;\n /** Native id property. */\n id?: string;\n /** Whether the current step is active or not. */\n isActive?: boolean;\n /** Whether the current step is completed or not. */\n isComplete?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: string | null;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStep';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepProps> = {};\n\n/**\n * ProgressTrackerStep component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStep = forwardRef<ProgressTrackerStepProps, HTMLButtonElement>((props, ref) => {\n const { isAnyDisabled, otherProps } = useDisableStateProps(props);\n const {\n className,\n hasError,\n helper,\n id,\n isActive: propIsActive,\n isComplete,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = otherProps;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isAnyDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isAnyDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n const getIcon = (): string => {\n if (isComplete) {\n return mdiCheckCircle;\n }\n\n if (isActive) {\n return hasError ? mdiAlertCircle : mdiRadioboxMarked;\n }\n\n return mdiRadioboxBlank;\n };\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n hasError,\n isActive,\n isClickable: state && !isAnyDisabled,\n isComplete,\n }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isAnyDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n <Icon className={`${CLASSNAME}__state`} icon={getIcon()} size={Size.s} />\n\n <InputLabel htmlFor={state?.tabId || ''} className={`${CLASSNAME}__label`}>\n {label}\n </InputLabel>\n\n {helper && (\n <InputHelper kind={hasError ? Kind.error : Kind.info} className={`${CLASSNAME}__helper`}>\n {helper}\n </InputHelper>\n )}\n </button>\n );\n});\nProgressTrackerStep.displayName = COMPONENT_NAME;\nProgressTrackerStep.className = CLASSNAME;\nProgressTrackerStep.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","ProgressTrackerStep","forwardRef","props","ref","isAnyDisabled","otherProps","useDisableStateProps","className","hasError","helper","id","isActive","propIsActive","isComplete","label","onFocus","onKeyPress","tabIndex","forwardedProps","state","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","shouldActivateOnFocus","handleKeyPress","key","getIcon","mdiCheckCircle","mdiAlertCircle","mdiRadioboxMarked","mdiRadioboxBlank","_jsxs","type","tabId","classNames","handleBasicClasses","prefix","isClickable","onClick","role","tabPanelId","children","_jsx","Icon","icon","size","Size","s","InputLabel","htmlFor","InputHelper","kind","Kind","error","info","displayName","defaultProps"],"mappings":";;;;;;;;;;;;;;;;AAmCA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,qBAAqB,CAAA;;AAE5C;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAgD,GAAG,EAAE,CAAA;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAGC,UAAU,CAA8C,CAACC,KAAK,EAAEC,GAAG,KAAK;EACvG,MAAM;IAAEC,aAAa;AAAEC,IAAAA,UAAAA;AAAW,GAAC,GAAGC,oBAAoB,CAACJ,KAAK,CAAC,CAAA;EACjE,MAAM;IACFK,SAAS;IACTC,QAAQ;IACRC,MAAM;IACNC,EAAE;AACFC,IAAAA,QAAQ,EAAEC,YAAY;IACtBC,UAAU;IACVC,KAAK;IACLC,OAAO;IACPC,UAAU;IACVC,QAAQ,GAAG,CAAC,CAAC;IACb,GAAGC,cAAAA;AACP,GAAC,GAAGb,UAAU,CAAA;AACd,EAAA,MAAMc,KAAK,GAAGC,qBAAqB,CAAC,KAAK,EAAEV,EAAE,CAAC,CAAA;AAC9C,EAAA,MAAMC,QAAQ,GAAGC,YAAY,IAAIO,KAAK,EAAER,QAAQ,CAAA;AAEhD,EAAA,MAAMU,kBAAkB,GAAGC,WAAW,CAAC,MAAM;AACzC,IAAA,IAAIlB,aAAa,EAAE;AACf,MAAA,OAAA;AACJ,KAAA;IACAe,KAAK,EAAEI,WAAW,EAAE,CAAA;AACxB,GAAC,EAAE,CAACnB,aAAa,EAAEe,KAAK,CAAC,CAAC,CAAA;AAE1B,EAAA,MAAMK,WAA8B,GAAGF,WAAW,CAC7CG,KAAK,IAAK;IACPV,OAAO,GAAGU,KAAK,CAAC,CAAA;IAChB,IAAIN,KAAK,EAAEO,qBAAqB,EAAE;AAC9BL,MAAAA,kBAAkB,EAAE,CAAA;AACxB,KAAA;GACH,EACD,CAACA,kBAAkB,EAAEN,OAAO,EAAEI,KAAK,EAAEO,qBAAqB,CAC9D,CAAC,CAAA;AAED,EAAA,MAAMC,cAAoC,GAAGL,WAAW,CACnDG,KAAK,IAAK;IACPT,UAAU,GAAGS,KAAK,CAAC,CAAA;AACnB,IAAA,IAAIA,KAAK,CAACG,GAAG,KAAK,OAAO,EAAE;AACvB,MAAA,OAAA;AACJ,KAAA;AACAP,IAAAA,kBAAkB,EAAE,CAAA;AACxB,GAAC,EACD,CAACA,kBAAkB,EAAEL,UAAU,CACnC,CAAC,CAAA;EAED,MAAMa,OAAO,GAAGA,MAAc;AAC1B,IAAA,IAAIhB,UAAU,EAAE;AACZ,MAAA,OAAOiB,cAAc,CAAA;AACzB,KAAA;AAEA,IAAA,IAAInB,QAAQ,EAAE;AACV,MAAA,OAAOH,QAAQ,GAAGuB,cAAc,GAAGC,iBAAiB,CAAA;AACxD,KAAA;AAEA,IAAA,OAAOC,gBAAgB,CAAA;GAC1B,CAAA;AAED,EAAA,oBACIC,IAAA,CAAA,QAAA,EAAA;AACI/B,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLe,cAAc;AAClBiB,IAAAA,IAAI,EAAC,QAAQ;IACbzB,EAAE,EAAES,KAAK,EAAEiB,KAAM;AACjB7B,IAAAA,SAAS,EAAE8B,UAAU,CACjB9B,SAAS,EACT+B,kBAAkB,CAAC;AACfC,MAAAA,MAAM,EAAE1C,SAAS;MACjBW,QAAQ;MACRG,QAAQ;AACR6B,MAAAA,WAAW,EAAErB,KAAK,IAAI,CAACf,aAAa;AACpCS,MAAAA,UAAAA;AACJ,KAAC,CACL,CAAE;AACF4B,IAAAA,OAAO,EAAEpB,kBAAmB;AAC5BL,IAAAA,UAAU,EAAEW,cAAe;AAC3BZ,IAAAA,OAAO,EAAES,WAAY;AACrBkB,IAAAA,IAAI,EAAC,KAAK;AACVzB,IAAAA,QAAQ,EAAEN,QAAQ,GAAG,CAAC,GAAGM,QAAS;AAClC,IAAA,eAAA,EAAeb,aAAc;AAC7B,IAAA,eAAA,EAAeO,QAAS;IACxB,eAAeQ,EAAAA,KAAK,EAAEwB,UAAW;IAAAC,QAAA,EAAA,cAEjCC,GAAA,CAACC,IAAI,EAAA;MAACvC,SAAS,EAAE,CAAGV,EAAAA,SAAS,CAAU,OAAA,CAAA;MAACkD,IAAI,EAAElB,OAAO,EAAG;MAACmB,IAAI,EAAEC,IAAI,CAACC,CAAAA;AAAE,KAAE,CAAC,eAEzEL,GAAA,CAACM,UAAU,EAAA;AAACC,MAAAA,OAAO,EAAEjC,KAAK,EAAEiB,KAAK,IAAI,EAAG;MAAC7B,SAAS,EAAE,CAAGV,EAAAA,SAAS,CAAU,OAAA,CAAA;AAAA+C,MAAAA,QAAA,EACrE9B,KAAAA;AAAK,KACE,CAAC,EAEZL,MAAM,iBACHoC,GAAA,CAACQ,WAAW,EAAA;MAACC,IAAI,EAAE9C,QAAQ,GAAG+C,IAAI,CAACC,KAAK,GAAGD,IAAI,CAACE,IAAK;MAAClD,SAAS,EAAE,CAAGV,EAAAA,SAAS,CAAW,QAAA,CAAA;AAAA+C,MAAAA,QAAA,EACnFnC,MAAAA;AAAM,KACE,CAChB,CAAA;AAAA,GACG,CAAC,CAAA;AAEjB,CAAC,EAAC;AACFT,mBAAmB,CAAC0D,WAAW,GAAG9D,cAAc,CAAA;AAChDI,mBAAmB,CAACO,SAAS,GAAGV,SAAS,CAAA;AACzCG,mBAAmB,CAAC2D,YAAY,GAAG5D,aAAa;;;;"}
@@ -0,0 +1,4 @@
1
+ const mdiPlayCircleOutline = 'M12 20a8.01 8.01 0 0 1 0-16 8.01 8.01 0 0 1 0 16m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-2 14.5 6-4.5-6-4.5z';
2
+
3
+ export { mdiPlayCircleOutline };
4
+ //# sourceMappingURL=185778b8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"185778b8.js","sources":["../../../lumx-icons/dist/esm/play-circle-outline.js"],"sourcesContent":["export const mdiPlayCircleOutline = 'M12 20a8.01 8.01 0 0 1 0-16 8.01 8.01 0 0 1 0 16m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-2 14.5 6-4.5-6-4.5z';"],"names":["mdiPlayCircleOutline"],"mappings":"AAAO,MAAMA,oBAAoB,GAAG;;;;"}
@@ -0,0 +1,60 @@
1
+ import { useReducer, useEffect } from 'react';
2
+ import { reducer, INIT_STATE, TabProviderContext } from './e0398237.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ const DEFAULT_PROPS = {
6
+ isLazy: INIT_STATE.isLazy,
7
+ shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus
8
+ };
9
+
10
+ /**
11
+ * This component provides a context in which steps can be defined and linked to their step panel.
12
+ *
13
+ * It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel
14
+ * components in the react tree.
15
+ *
16
+ * This works exactly as TabProvider so it uses TabProviderContext and tabs state.
17
+ *
18
+ * @param props React component props.
19
+ * @return React element.
20
+ */
21
+ const ProgressTrackerProvider = props => {
22
+ const {
23
+ children,
24
+ onChange,
25
+ ...propState
26
+ } = props;
27
+ const [state, dispatch] = useReducer(reducer, INIT_STATE);
28
+
29
+ // On prop state change => dispatch update.
30
+ useEffect(() => {
31
+ dispatch({
32
+ type: 'update',
33
+ payload: {
34
+ ...DEFAULT_PROPS,
35
+ ...propState,
36
+ activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex
37
+ }
38
+ });
39
+ },
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ [dispatch, ...Object.values(propState)]);
42
+
43
+ // On active tab index state change => send update to the onChange.
44
+ useEffect(() => {
45
+ if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {
46
+ return;
47
+ }
48
+ onChange(state.activeTabIndex);
49
+ },
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ [onChange, state.activeTabIndex]);
52
+ return /*#__PURE__*/jsx(TabProviderContext.Provider, {
53
+ value: [state, dispatch],
54
+ children: children
55
+ });
56
+ };
57
+ ProgressTrackerProvider.defaultProps = DEFAULT_PROPS;
58
+
59
+ export { ProgressTrackerProvider };
60
+ //# sourceMappingURL=1afd2506.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1afd2506.js","sources":["../../src/components/progress-tracker/ProgressTrackerProvider.tsx"],"sourcesContent":["import { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from '../tabs/state';\n\nexport interface ProgressTrackerProviderProps {\n /** Active step index. */\n activeStepIndex?: number;\n /** ProgressTrackerProvider children. */\n children: ReactNode;\n /** Step panel children should not render if the step panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n /** Step change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<ProgressTrackerProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which steps can be defined and linked to their step panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel\n * components in the react tree.\n *\n * This works exactly as TabProvider so it uses TabProviderContext and tabs state.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const ProgressTrackerProvider: React.FC<ProgressTrackerProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({\n type: 'update',\n payload: {\n ...DEFAULT_PROPS,\n ...propState,\n activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex,\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {\n return;\n }\n onChange(state.activeTabIndex);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nProgressTrackerProvider.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","ProgressTrackerProvider","props","children","onChange","propState","state","dispatch","useReducer","reducer","useEffect","type","payload","activeTabIndex","activeStepIndex","Object","values","_jsx","TabProviderContext","Provider","value","defaultProps"],"mappings":";;;;AAgBA,MAAMA,aAAoD,GAAG;EACzDC,MAAM,EAAEC,UAAU,CAACD,MAAM;EACzBE,qBAAqB,EAAED,UAAU,CAACC,qBAAAA;AACtC,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,MAAAA,uBAA+D,GAAIC,KAAK,IAAK;EACtF,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,SAAAA;AAAU,GAAC,GAAGH,KAAK,CAAA;EAClD,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGC,UAAU,CAACC,OAAO,EAAEV,UAAU,CAAC,CAAA;;AAEzD;AACAW,EAAAA,SAAS,CACL,MAAM;AACFH,IAAAA,QAAQ,CAAC;AACLI,MAAAA,IAAI,EAAE,QAAQ;AACdC,MAAAA,OAAO,EAAE;AACL,QAAA,GAAGf,aAAa;AAChB,QAAA,GAAGQ,SAAS;AACZQ,QAAAA,cAAc,EAAER,SAAS,CAACS,eAAe,IAAIf,UAAU,CAACc,cAAAA;AAC5D,OAAA;AACJ,KAAC,CAAC,CAAA;GACL;AACD;EACA,CAACN,QAAQ,EAAE,GAAGQ,MAAM,CAACC,MAAM,CAACX,SAAS,CAAC,CAC1C,CAAC,CAAA;;AAED;AACAK,EAAAA,SAAS,CACL,MAAM;AACF,IAAA,IAAIJ,KAAK,KAAKP,UAAU,IAAI,CAACK,QAAQ,IAAIC,SAAS,CAACS,eAAe,KAAKR,KAAK,CAACO,cAAc,EAAE;AACzF,MAAA,OAAA;AACJ,KAAA;AACAT,IAAAA,QAAQ,CAACE,KAAK,CAACO,cAAc,CAAC,CAAA;GACjC;AACD;AACA,EAAA,CAACT,QAAQ,EAAEE,KAAK,CAACO,cAAc,CACnC,CAAC,CAAA;AAED,EAAA,oBAAOI,GAAA,CAACC,kBAAkB,CAACC,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAE;AAAAJ,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAA8B,CAAC,CAAA;AAC1G,EAAC;AACDF,uBAAuB,CAACoB,YAAY,GAAGxB,aAAa;;;;"}
@@ -0,0 +1,159 @@
1
+ import { useState, useCallback, useEffect } from 'react';
2
+ import { useInterval } from './45ef51db.js';
3
+ import { AUTOPLAY_DEFAULT_INTERVAL } from './e50f2a75.js';
4
+ import { useId } from './11687649.js';
5
+
6
+ const DEFAULT_OPTIONS = {
7
+ activeIndex: 0,
8
+ groupBy: 1,
9
+ interval: AUTOPLAY_DEFAULT_INTERVAL
10
+ };
11
+ const useSlideshowControls = ({
12
+ activeIndex = DEFAULT_OPTIONS.activeIndex,
13
+ groupBy = DEFAULT_OPTIONS.groupBy,
14
+ interval = DEFAULT_OPTIONS.interval,
15
+ autoPlay,
16
+ defaultActiveIndex,
17
+ onChange,
18
+ itemsCount,
19
+ id,
20
+ slidesId
21
+ }) => {
22
+ const [currentIndex, setCurrentIndex] = useState(activeIndex);
23
+ // Use state instead of a ref to make the slideshow controls update directly when the element is set.
24
+ const [element, setElement] = useState(null);
25
+
26
+ // Number of slides when using groupBy prop.
27
+ const slidesCount = Math.ceil(itemsCount / Math.min(groupBy, itemsCount));
28
+
29
+ // Change current index to display next slide.
30
+ const goToNextSlide = useCallback((loopback = true) => {
31
+ setCurrentIndex(index => {
32
+ if (loopback && index === slidesCount - 1) {
33
+ // Loopback to the start.
34
+ return 0;
35
+ }
36
+ if (index < slidesCount - 1) {
37
+ // Next slide.
38
+ return index + 1;
39
+ }
40
+ return index;
41
+ });
42
+ }, [slidesCount, setCurrentIndex]);
43
+
44
+ // Change current index to display previous slide.
45
+ const goToPreviousSlide = useCallback((loopback = true) => {
46
+ setCurrentIndex(index => {
47
+ if (loopback && index === 0) {
48
+ // Loopback to the end.
49
+ return slidesCount - 1;
50
+ }
51
+ if (index > 0) {
52
+ // Previous slide.
53
+ return index - 1;
54
+ }
55
+ return index;
56
+ });
57
+ }, [slidesCount, setCurrentIndex]);
58
+
59
+ // Auto play
60
+ const [isAutoPlaying, setIsAutoPlaying] = useState(Boolean(autoPlay));
61
+ const [isForcePaused, setIsForcePaused] = useState(false);
62
+ const isSlideshowAutoPlaying = isForcePaused ? false : isAutoPlaying;
63
+ // Start
64
+ useInterval(goToNextSlide, isSlideshowAutoPlaying && slidesCount > 1 ? interval : null);
65
+
66
+ // Reset current index if it become invalid.
67
+ useEffect(() => {
68
+ if (currentIndex > slidesCount - 1) {
69
+ setCurrentIndex(defaultActiveIndex);
70
+ }
71
+ }, [currentIndex, slidesCount, defaultActiveIndex]);
72
+ const startAutoPlay = () => {
73
+ setIsAutoPlaying(Boolean(autoPlay));
74
+ };
75
+ const stopAutoPlay = () => {
76
+ setIsAutoPlaying(false);
77
+ };
78
+
79
+ // Handle click on a bullet to go to a specific slide.
80
+ const onPaginationClick = useCallback(index => {
81
+ stopAutoPlay();
82
+ setIsForcePaused(true);
83
+ if (index >= 0 && index < slidesCount) {
84
+ setCurrentIndex(index);
85
+ }
86
+ }, [slidesCount, setCurrentIndex]);
87
+
88
+ // Handle click or keyboard event to go to next slide.
89
+ const onNextClick = useCallback((loopback = true) => {
90
+ stopAutoPlay();
91
+ setIsForcePaused(true);
92
+ goToNextSlide(loopback);
93
+ }, [goToNextSlide]);
94
+
95
+ // Handle click or keyboard event to go to previous slide.
96
+ const onPreviousClick = useCallback((loopback = true) => {
97
+ stopAutoPlay();
98
+ setIsForcePaused(true);
99
+ goToPreviousSlide(loopback);
100
+ }, [goToPreviousSlide]);
101
+
102
+ // If the activeIndex props changes, update the current slide
103
+ useEffect(() => {
104
+ setCurrentIndex(activeIndex);
105
+ }, [activeIndex]);
106
+
107
+ // If the slide changes, with autoplay for example, trigger "onChange"
108
+ useEffect(() => {
109
+ if (!onChange) return;
110
+ onChange(currentIndex);
111
+ }, [currentIndex, onChange]);
112
+ const generatedSlideshowId = useId();
113
+ const slideshowId = id || generatedSlideshowId;
114
+ const generatedSlidesId = useId();
115
+ const slideshowSlidesId = slidesId || generatedSlidesId;
116
+ const toggleAutoPlay = () => {
117
+ if (isSlideshowAutoPlaying) {
118
+ stopAutoPlay();
119
+ } else {
120
+ startAutoPlay();
121
+ }
122
+ };
123
+ const toggleForcePause = () => {
124
+ const shouldBePaused = !isForcePaused;
125
+ setIsForcePaused(shouldBePaused);
126
+ if (!shouldBePaused) {
127
+ startAutoPlay();
128
+ } else {
129
+ stopAutoPlay();
130
+ }
131
+ };
132
+
133
+ // Start index and end index of visible slides.
134
+ const startIndexVisible = currentIndex * groupBy;
135
+ const endIndexVisible = startIndexVisible + groupBy;
136
+ return {
137
+ startIndexVisible,
138
+ endIndexVisible,
139
+ setSlideshow: setElement,
140
+ slideshow: element,
141
+ slideshowId,
142
+ slideshowSlidesId,
143
+ onPreviousClick,
144
+ onNextClick,
145
+ onPaginationClick,
146
+ isAutoPlaying: isSlideshowAutoPlaying,
147
+ toggleAutoPlay,
148
+ activeIndex: currentIndex,
149
+ slidesCount,
150
+ setActiveIndex: setCurrentIndex,
151
+ startAutoPlay,
152
+ stopAutoPlay,
153
+ isForcePaused,
154
+ toggleForcePause
155
+ };
156
+ };
157
+
158
+ export { DEFAULT_OPTIONS, useSlideshowControls };
159
+ //# sourceMappingURL=1c1cdfa2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1c1cdfa2.js","sources":["../../src/hooks/useSlideshowControls.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\n\nimport { useInterval } from '@lumx/react/hooks/useInterval';\nimport { AUTOPLAY_DEFAULT_INTERVAL } from '@lumx/react/components/slideshow/constants';\nimport { useId } from '@lumx/react/hooks/useId';\n\nexport interface UseSlideshowControlsOptions {\n /** default active index to be displayed */\n defaultActiveIndex?: number;\n /** total slides to display */\n itemsCount: number;\n /** Index of the current slide. */\n activeIndex?: number;\n /** Whether the automatic rotation of the slideshow is enabled or not. */\n autoPlay?: boolean;\n /** Whether the image has to fill its container height or not. */\n fillHeight?: boolean;\n /** Number of slides to group together. */\n groupBy?: number;\n /** Interval between each slide when automatic rotation is enabled. */\n interval?: number;\n /** Callback when slide changes */\n onChange?(index: number): void;\n /** slideshow HTML id attribute */\n id?: string;\n /** slides wrapper HTML id attribute */\n slidesId?: string;\n}\n\nexport interface UseSlideshowControls {\n /** Index for the first visible slide, should be used when groupBy is passed in */\n startIndexVisible: number;\n /** Index for the last visible slide, should be used when groupBy is passed in */\n endIndexVisible: number;\n /** total slides to be displayed */\n slidesCount: number;\n /** callback to set */\n setSlideshow: (element: HTMLDivElement | null) => void;\n /** reference to the slideshow element */\n slideshow: HTMLDivElement | null;\n /** id to be used for the slideshow */\n slideshowId: string;\n /** id to be used for the wrapper that contains the slides */\n slideshowSlidesId: string;\n /** callback that triggers the previous slide while using the slideshow controls */\n onPreviousClick: (loopback: boolean) => void;\n /** callback that triggers the next slide while using the slideshow controls */\n onNextClick: (loopback: boolean) => void;\n /** callback that triggers a specific page while using the slideshow controls */\n onPaginationClick: (index: number) => void;\n /** whether the slideshow is autoplaying or not */\n isAutoPlaying: boolean;\n /** whether the slideshow was force paused or not */\n isForcePaused: boolean;\n /** callback to change whether the slideshow is autoplaying or not */\n toggleAutoPlay: () => void;\n /** calback to change whether the slideshow should be force paused or not */\n toggleForcePause: () => void;\n /** current active slide index */\n activeIndex: number;\n /** set the current index as the active one */\n setActiveIndex: (index: number) => void;\n /** callback that stops the auto play */\n stopAutoPlay: () => void;\n /** callback that starts the auto play */\n startAutoPlay: () => void;\n}\n\nexport const DEFAULT_OPTIONS = {\n activeIndex: 0,\n groupBy: 1,\n interval: AUTOPLAY_DEFAULT_INTERVAL,\n} as const;\n\nexport const useSlideshowControls = ({\n activeIndex = DEFAULT_OPTIONS.activeIndex,\n groupBy = DEFAULT_OPTIONS.groupBy,\n interval = DEFAULT_OPTIONS.interval,\n autoPlay,\n defaultActiveIndex,\n onChange,\n itemsCount,\n id,\n slidesId,\n}: UseSlideshowControlsOptions): UseSlideshowControls => {\n const [currentIndex, setCurrentIndex] = useState(activeIndex as number);\n // Use state instead of a ref to make the slideshow controls update directly when the element is set.\n const [element, setElement] = useState<HTMLDivElement | null>(null);\n\n // Number of slides when using groupBy prop.\n const slidesCount = Math.ceil(itemsCount / Math.min(groupBy as number, itemsCount));\n\n // Change current index to display next slide.\n const goToNextSlide = useCallback(\n (loopback = true) => {\n setCurrentIndex((index) => {\n if (loopback && index === slidesCount - 1) {\n // Loopback to the start.\n return 0;\n }\n if (index < slidesCount - 1) {\n // Next slide.\n return index + 1;\n }\n return index;\n });\n },\n [slidesCount, setCurrentIndex],\n );\n\n // Change current index to display previous slide.\n const goToPreviousSlide = useCallback(\n (loopback = true) => {\n setCurrentIndex((index) => {\n if (loopback && index === 0) {\n // Loopback to the end.\n return slidesCount - 1;\n }\n if (index > 0) {\n // Previous slide.\n return index - 1;\n }\n return index;\n });\n },\n [slidesCount, setCurrentIndex],\n );\n\n // Auto play\n const [isAutoPlaying, setIsAutoPlaying] = useState(Boolean(autoPlay));\n const [isForcePaused, setIsForcePaused] = useState(false);\n\n const isSlideshowAutoPlaying = isForcePaused ? false : isAutoPlaying;\n // Start\n useInterval(goToNextSlide, isSlideshowAutoPlaying && slidesCount > 1 ? (interval as number) : null);\n\n // Reset current index if it become invalid.\n useEffect(() => {\n if (currentIndex > slidesCount - 1) {\n setCurrentIndex(defaultActiveIndex as number);\n }\n }, [currentIndex, slidesCount, defaultActiveIndex]);\n\n const startAutoPlay = () => {\n setIsAutoPlaying(Boolean(autoPlay));\n };\n\n const stopAutoPlay = () => {\n setIsAutoPlaying(false);\n };\n\n // Handle click on a bullet to go to a specific slide.\n const onPaginationClick = useCallback(\n (index: number) => {\n stopAutoPlay();\n setIsForcePaused(true);\n\n if (index >= 0 && index < slidesCount) {\n setCurrentIndex(index);\n }\n },\n [slidesCount, setCurrentIndex],\n );\n\n // Handle click or keyboard event to go to next slide.\n const onNextClick = useCallback(\n (loopback = true) => {\n stopAutoPlay();\n setIsForcePaused(true);\n goToNextSlide(loopback);\n },\n [goToNextSlide],\n );\n\n // Handle click or keyboard event to go to previous slide.\n const onPreviousClick = useCallback(\n (loopback = true) => {\n stopAutoPlay();\n setIsForcePaused(true);\n goToPreviousSlide(loopback);\n },\n [goToPreviousSlide],\n );\n\n // If the activeIndex props changes, update the current slide\n useEffect(() => {\n setCurrentIndex(activeIndex as number);\n }, [activeIndex]);\n\n // If the slide changes, with autoplay for example, trigger \"onChange\"\n useEffect(() => {\n if (!onChange) return;\n onChange(currentIndex);\n }, [currentIndex, onChange]);\n\n const generatedSlideshowId = useId();\n const slideshowId = id || generatedSlideshowId;\n\n const generatedSlidesId = useId();\n const slideshowSlidesId = slidesId || generatedSlidesId;\n\n const toggleAutoPlay = () => {\n if (isSlideshowAutoPlaying) {\n stopAutoPlay();\n } else {\n startAutoPlay();\n }\n };\n\n const toggleForcePause = () => {\n const shouldBePaused = !isForcePaused;\n\n setIsForcePaused(shouldBePaused);\n\n if (!shouldBePaused) {\n startAutoPlay();\n } else {\n stopAutoPlay();\n }\n };\n\n // Start index and end index of visible slides.\n const startIndexVisible = currentIndex * (groupBy as number);\n const endIndexVisible = startIndexVisible + (groupBy as number);\n\n return {\n startIndexVisible,\n endIndexVisible,\n setSlideshow: setElement,\n slideshow: element,\n slideshowId,\n slideshowSlidesId,\n onPreviousClick,\n onNextClick,\n onPaginationClick,\n isAutoPlaying: isSlideshowAutoPlaying,\n toggleAutoPlay,\n activeIndex: currentIndex,\n slidesCount,\n setActiveIndex: setCurrentIndex,\n startAutoPlay,\n stopAutoPlay,\n isForcePaused,\n toggleForcePause,\n };\n};\n"],"names":["DEFAULT_OPTIONS","activeIndex","groupBy","interval","AUTOPLAY_DEFAULT_INTERVAL","useSlideshowControls","autoPlay","defaultActiveIndex","onChange","itemsCount","id","slidesId","currentIndex","setCurrentIndex","useState","element","setElement","slidesCount","Math","ceil","min","goToNextSlide","useCallback","loopback","index","goToPreviousSlide","isAutoPlaying","setIsAutoPlaying","Boolean","isForcePaused","setIsForcePaused","isSlideshowAutoPlaying","useInterval","useEffect","startAutoPlay","stopAutoPlay","onPaginationClick","onNextClick","onPreviousClick","generatedSlideshowId","useId","slideshowId","generatedSlidesId","slideshowSlidesId","toggleAutoPlay","toggleForcePause","shouldBePaused","startIndexVisible","endIndexVisible","setSlideshow","slideshow","setActiveIndex"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ const mdiCheck = 'M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z';
2
+
3
+ export { mdiCheck };
4
+ //# sourceMappingURL=1c3b349b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1c3b349b.js","sources":["../../../lumx-icons/dist/esm/check.js"],"sourcesContent":["export const mdiCheck = 'M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z';"],"names":["mdiCheck"],"mappings":"AAAO,MAAMA,QAAQ,GAAG;;;;"}
@@ -0,0 +1,173 @@
1
+ import React__default, { useCallback, useMemo } from 'react';
2
+ import classNames from 'classnames';
3
+ import range from 'lodash/range';
4
+ import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
5
+ import { WINDOW } from './6af61e2f.js';
6
+ import { useSlideshowControls, DEFAULT_OPTIONS } from './1c1cdfa2.js';
7
+ import { useRovingTabIndex } from './bb8088e1.js';
8
+ import { forwardRef } from './bd8b3ec8.js';
9
+ import { useTheme } from './d8ee966d.js';
10
+ import { useSwipeNavigate } from './de52a4b9.js';
11
+ import { PAGINATION_ITEM_SIZE, PAGINATION_ITEMS_MAX } from './e50f2a75.js';
12
+ import { usePaginationVisibleRange } from './5da9ff06.js';
13
+ import { jsxs, jsx } from 'react/jsx-runtime';
14
+ import { mdiPauseCircleOutline } from './4bb19934.js';
15
+ import { mdiPlayCircleOutline } from './185778b8.js';
16
+ import { Theme, Emphasis } from '@lumx/core/js/constants';
17
+ import { IconButton } from './5a0207d9.js';
18
+ import { mdiChevronLeft } from './e9c3b1e0.js';
19
+ import { mdiChevronRight } from './aeba575c.js';
20
+
21
+ /**
22
+ * Component display name.
23
+ */
24
+ const COMPONENT_NAME = 'SlideshowControls';
25
+
26
+ /**
27
+ * Component default class name and class prefix.
28
+ */
29
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
30
+
31
+ /**
32
+ * Component default props.
33
+ */
34
+ const DEFAULT_PROPS = {
35
+ activeIndex: 0
36
+ };
37
+
38
+ /**
39
+ * SlideshowControls component.
40
+ *
41
+ * @param props Component props.
42
+ * @param ref Component ref.
43
+ * @return React element.
44
+ */
45
+ const InternalSlideshowControls = forwardRef((props, ref) => {
46
+ const defaultTheme = useTheme() || Theme.light;
47
+ const {
48
+ activeIndex = DEFAULT_PROPS.activeIndex,
49
+ className,
50
+ nextButtonProps,
51
+ onNextClick,
52
+ onPaginationClick,
53
+ onPreviousClick,
54
+ parentRef,
55
+ previousButtonProps,
56
+ paginationProps,
57
+ slidesCount,
58
+ theme = defaultTheme,
59
+ isAutoPlaying = false,
60
+ playButtonProps,
61
+ paginationItemLabel,
62
+ paginationItemProps,
63
+ ...forwardedProps
64
+ } = props;
65
+ let parent;
66
+ if (WINDOW) {
67
+ // Checking window object to avoid errors in SSR.
68
+ parent = parentRef instanceof HTMLElement ? parentRef : parentRef?.current;
69
+ }
70
+ const paginationRef = React__default.useRef(null);
71
+ // Listen to touch swipe navigate left & right.
72
+ useSwipeNavigate(parent,
73
+ // Go next without loopback.
74
+ useCallback(() => onNextClick?.(false), [onNextClick]),
75
+ // Go previous without loopback.
76
+ useCallback(() => onPreviousClick?.(false), [onPreviousClick]));
77
+
78
+ /**
79
+ * Add roving tab index pattern to pagination items and activate slide on focus.
80
+ */
81
+ useRovingTabIndex({
82
+ parentRef: paginationRef,
83
+ elementSelector: 'button',
84
+ keepTabIndex: true,
85
+ onElementFocus: element => {
86
+ element.click();
87
+ }
88
+ });
89
+
90
+ // Pagination "bullet" range.
91
+ const visibleRange = usePaginationVisibleRange(activeIndex, slidesCount);
92
+
93
+ // Inline style of wrapper element.
94
+ const wrapperStyle = {
95
+ transform: `translateX(-${PAGINATION_ITEM_SIZE * visibleRange.min}px)`
96
+ };
97
+ return /*#__PURE__*/jsxs("div", {
98
+ ref: ref,
99
+ ...forwardedProps,
100
+ className: classNames(className, handleBasicClasses({
101
+ prefix: CLASSNAME,
102
+ theme
103
+ }), {
104
+ [`${CLASSNAME}--has-infinite-pagination`]: slidesCount > PAGINATION_ITEMS_MAX
105
+ }),
106
+ children: [/*#__PURE__*/jsx(IconButton, {
107
+ ...previousButtonProps,
108
+ icon: mdiChevronLeft,
109
+ className: `${CLASSNAME}__navigation`,
110
+ color: theme === Theme.dark ? 'light' : 'dark',
111
+ emphasis: Emphasis.low,
112
+ onClick: onPreviousClick
113
+ }), /*#__PURE__*/jsx("div", {
114
+ ref: paginationRef,
115
+ className: `${CLASSNAME}__pagination`,
116
+ children: /*#__PURE__*/jsx("div", {
117
+ className: `${CLASSNAME}__pagination-items`,
118
+ style: wrapperStyle,
119
+ role: "tablist",
120
+ ...paginationProps,
121
+ children: useMemo(() => range(slidesCount).map(index => {
122
+ const isOnEdge = index !== 0 && index !== slidesCount - 1 && (index === visibleRange.min || index === visibleRange.max);
123
+ const isActive = activeIndex === index;
124
+ const isOutRange = index < visibleRange.min || index > visibleRange.max;
125
+ const {
126
+ className: itemClassName = undefined,
127
+ label = undefined,
128
+ ...itemProps
129
+ } = paginationItemProps ? paginationItemProps(index) : {};
130
+ const ariaLabel = label || paginationItemLabel?.(index) || `${index + 1} / ${slidesCount}`;
131
+ return /*#__PURE__*/jsx("button", {
132
+ className: classNames(handleBasicClasses({
133
+ prefix: `${CLASSNAME}__pagination-item`,
134
+ isActive,
135
+ isOnEdge,
136
+ isOutRange
137
+ }), itemClassName),
138
+ type: "button",
139
+ tabIndex: isActive ? undefined : -1,
140
+ role: "tab",
141
+ "aria-selected": isActive,
142
+ onClick: () => onPaginationClick?.(index),
143
+ "aria-label": ariaLabel,
144
+ ...itemProps
145
+ }, index);
146
+ }), [slidesCount, visibleRange.min, visibleRange.max, activeIndex, paginationItemProps, paginationItemLabel, onPaginationClick])
147
+ })
148
+ }), playButtonProps ? /*#__PURE__*/jsx(IconButton, {
149
+ ...playButtonProps,
150
+ icon: isAutoPlaying ? mdiPauseCircleOutline : mdiPlayCircleOutline,
151
+ className: `${CLASSNAME}__play`,
152
+ color: theme === Theme.dark ? 'light' : 'dark',
153
+ emphasis: Emphasis.low
154
+ }) : null, /*#__PURE__*/jsx(IconButton, {
155
+ ...nextButtonProps,
156
+ icon: mdiChevronRight,
157
+ className: `${CLASSNAME}__navigation`,
158
+ color: theme === Theme.dark ? 'light' : 'dark',
159
+ emphasis: Emphasis.low,
160
+ onClick: onNextClick
161
+ })]
162
+ });
163
+ });
164
+ InternalSlideshowControls.displayName = COMPONENT_NAME;
165
+ InternalSlideshowControls.className = CLASSNAME;
166
+ InternalSlideshowControls.defaultProps = DEFAULT_PROPS;
167
+ const SlideshowControls = Object.assign(InternalSlideshowControls, {
168
+ useSlideshowControls,
169
+ useSlideshowControlsDefaultOptions: DEFAULT_OPTIONS
170
+ });
171
+
172
+ export { SlideshowControls };
173
+ //# sourceMappingURL=1d7267a1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1d7267a1.js","sources":["../../src/components/slideshow/SlideshowControls.tsx"],"sourcesContent":["import React, { RefObject, useCallback, useMemo } from 'react';\n\nimport classNames from 'classnames';\nimport range from 'lodash/range';\n\nimport { mdiChevronLeft, mdiChevronRight, mdiPlayCircleOutline, mdiPauseCircleOutline } from '@lumx/icons';\nimport { Emphasis, IconButton, IconButtonProps, Theme } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { WINDOW } from '@lumx/react/constants';\nimport { useSlideshowControls, DEFAULT_OPTIONS } from '@lumx/react/hooks/useSlideshowControls';\nimport { useRovingTabIndex } from '@lumx/react/hooks/useRovingTabIndex';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { useSwipeNavigate } from './useSwipeNavigate';\nimport { PAGINATION_ITEM_SIZE, PAGINATION_ITEMS_MAX } from './constants';\nimport { usePaginationVisibleRange } from './usePaginationVisibleRange';\n\n/**\n * Defines the props of the component.\n */\nexport interface SlideshowControlsProps extends GenericProps, HasTheme {\n /** Index of the current slide. */\n activeIndex?: number;\n /** Props to pass to the next button (minus those already set by the SlideshowControls props). */\n nextButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;\n /** Reference to the parent element on which we want to listen touch swipe. */\n parentRef?: RefObject<HTMLDivElement> | HTMLDivElement | null;\n /** Props to pass to the previous button (minus those already set by the SlideshowControls props). */\n previousButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;\n /** Props to pass to the pagination wrapper */\n paginationProps?: Omit<React.HTMLAttributes<HTMLDivElement>, 'className' | 'style' | 'role'>;\n /** Number of slides. */\n slidesCount: number;\n /** On next button click callback. */\n onNextClick?(loopback?: boolean): void;\n /** On pagination change callback. */\n onPaginationClick?(index: number): void;\n /** On previous button click callback. */\n onPreviousClick?(loopback?: boolean): void;\n /** whether the slideshow is currently playing */\n isAutoPlaying?: boolean;\n /**\n * function to be executed in order to retrieve the label for the pagination item\n * @deprecated Use paginationItemProps instead.\n * */\n paginationItemLabel?: (index: number) => string;\n /**\n * function to be executed in order to retrieve the props for a pagination item.\n */\n paginationItemProps?: (itemIndex: number) => React.HTMLAttributes<HTMLButtonElement> & { label?: string };\n /** Props to pass to the lay button (minus those already set by the SlideshowControls props). */\n playButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SlideshowControls';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SlideshowControlsProps> = {\n activeIndex: 0,\n};\n\n/**\n * SlideshowControls component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nconst InternalSlideshowControls = forwardRef<SlideshowControlsProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n activeIndex = DEFAULT_PROPS.activeIndex,\n className,\n nextButtonProps,\n onNextClick,\n onPaginationClick,\n onPreviousClick,\n parentRef,\n previousButtonProps,\n paginationProps,\n slidesCount,\n theme = defaultTheme,\n isAutoPlaying = false,\n playButtonProps,\n paginationItemLabel,\n paginationItemProps,\n ...forwardedProps\n } = props;\n\n let parent;\n if (WINDOW) {\n // Checking window object to avoid errors in SSR.\n parent = parentRef instanceof HTMLElement ? parentRef : parentRef?.current;\n }\n const paginationRef = React.useRef(null);\n // Listen to touch swipe navigate left & right.\n useSwipeNavigate(\n parent,\n // Go next without loopback.\n useCallback(() => onNextClick?.(false), [onNextClick]),\n // Go previous without loopback.\n useCallback(() => onPreviousClick?.(false), [onPreviousClick]),\n );\n\n /**\n * Add roving tab index pattern to pagination items and activate slide on focus.\n */\n useRovingTabIndex({\n parentRef: paginationRef,\n elementSelector: 'button',\n keepTabIndex: true,\n onElementFocus: (element) => {\n element.click();\n },\n });\n\n // Pagination \"bullet\" range.\n const visibleRange = usePaginationVisibleRange(activeIndex as number, slidesCount);\n\n // Inline style of wrapper element.\n const wrapperStyle = { transform: `translateX(-${PAGINATION_ITEM_SIZE * visibleRange.min}px)` };\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }), {\n [`${CLASSNAME}--has-infinite-pagination`]: slidesCount > PAGINATION_ITEMS_MAX,\n })}\n >\n <IconButton\n {...previousButtonProps}\n icon={mdiChevronLeft}\n className={`${CLASSNAME}__navigation`}\n color={theme === Theme.dark ? 'light' : 'dark'}\n emphasis={Emphasis.low}\n onClick={onPreviousClick}\n />\n <div ref={paginationRef} className={`${CLASSNAME}__pagination`}>\n <div\n className={`${CLASSNAME}__pagination-items`}\n style={wrapperStyle}\n role=\"tablist\"\n {...paginationProps}\n >\n {useMemo(\n () =>\n range(slidesCount).map((index) => {\n const isOnEdge =\n index !== 0 &&\n index !== slidesCount - 1 &&\n (index === visibleRange.min || index === visibleRange.max);\n const isActive = activeIndex === index;\n const isOutRange = index < visibleRange.min || index > visibleRange.max;\n const {\n className: itemClassName = undefined,\n label = undefined,\n ...itemProps\n } = paginationItemProps ? paginationItemProps(index) : {};\n\n const ariaLabel =\n label || paginationItemLabel?.(index) || `${index + 1} / ${slidesCount}`;\n\n return (\n <button\n className={classNames(\n handleBasicClasses({\n prefix: `${CLASSNAME}__pagination-item`,\n isActive,\n isOnEdge,\n isOutRange,\n }),\n itemClassName,\n )}\n key={index}\n type=\"button\"\n tabIndex={isActive ? undefined : -1}\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => onPaginationClick?.(index)}\n aria-label={ariaLabel}\n {...itemProps}\n />\n );\n }),\n [\n slidesCount,\n visibleRange.min,\n visibleRange.max,\n activeIndex,\n paginationItemProps,\n paginationItemLabel,\n onPaginationClick,\n ],\n )}\n </div>\n </div>\n\n {playButtonProps ? (\n <IconButton\n {...playButtonProps}\n icon={isAutoPlaying ? mdiPauseCircleOutline : mdiPlayCircleOutline}\n className={`${CLASSNAME}__play`}\n color={theme === Theme.dark ? 'light' : 'dark'}\n emphasis={Emphasis.low}\n />\n ) : null}\n\n <IconButton\n {...nextButtonProps}\n icon={mdiChevronRight}\n className={`${CLASSNAME}__navigation`}\n color={theme === Theme.dark ? 'light' : 'dark'}\n emphasis={Emphasis.low}\n onClick={onNextClick}\n />\n </div>\n );\n});\n\nInternalSlideshowControls.displayName = COMPONENT_NAME;\nInternalSlideshowControls.className = CLASSNAME;\nInternalSlideshowControls.defaultProps = DEFAULT_PROPS;\n\nexport const SlideshowControls = Object.assign(InternalSlideshowControls, {\n useSlideshowControls,\n useSlideshowControlsDefaultOptions: DEFAULT_OPTIONS,\n});\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","activeIndex","InternalSlideshowControls","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","className","nextButtonProps","onNextClick","onPaginationClick","onPreviousClick","parentRef","previousButtonProps","paginationProps","slidesCount","theme","isAutoPlaying","playButtonProps","paginationItemLabel","paginationItemProps","forwardedProps","parent","WINDOW","HTMLElement","current","paginationRef","React","useRef","useSwipeNavigate","useCallback","useRovingTabIndex","elementSelector","keepTabIndex","onElementFocus","element","click","visibleRange","usePaginationVisibleRange","wrapperStyle","transform","PAGINATION_ITEM_SIZE","min","_jsxs","classNames","handleBasicClasses","prefix","PAGINATION_ITEMS_MAX","children","_jsx","IconButton","icon","mdiChevronLeft","color","dark","emphasis","Emphasis","low","onClick","style","role","useMemo","range","map","index","isOnEdge","max","isActive","isOutRange","itemClassName","undefined","label","itemProps","ariaLabel","type","tabIndex","mdiPauseCircleOutline","mdiPlayCircleOutline","mdiChevronRight","displayName","defaultProps","SlideshowControls","Object","assign","useSlideshowControls","useSlideshowControlsDefaultOptions","DEFAULT_OPTIONS"],"mappings":"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"}