@lumx/react 3.20.1-alpha.10 → 3.20.1-alpha.12

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 (723) hide show
  1. package/CONTRIBUTING.md +1 -5
  2. package/README.md +0 -2
  3. package/_internal/0420e67b.js +119 -0
  4. package/_internal/0420e67b.js.map +1 -0
  5. package/_internal/0a490b07.js +75 -0
  6. package/_internal/0a490b07.js.map +1 -0
  7. package/_internal/0b9c76cb.js +6 -0
  8. package/_internal/0b9c76cb.js.map +1 -0
  9. package/_internal/0be1006e.js +97 -0
  10. package/_internal/0be1006e.js.map +1 -0
  11. package/_internal/0d1a078c.js +144 -0
  12. package/_internal/0d1a078c.js.map +1 -0
  13. package/_internal/15eab19b.js +75 -0
  14. package/_internal/15eab19b.js.map +1 -0
  15. package/_internal/179a84d1.js +259 -0
  16. package/_internal/179a84d1.js.map +1 -0
  17. package/_internal/193521fa.js +52 -0
  18. package/_internal/193521fa.js.map +1 -0
  19. package/_internal/1a90ea3d.js +51 -0
  20. package/_internal/1a90ea3d.js.map +1 -0
  21. package/_internal/1deba7d7.js +224 -0
  22. package/_internal/1deba7d7.js.map +1 -0
  23. package/_internal/1ea72630.js +146 -0
  24. package/_internal/1ea72630.js.map +1 -0
  25. package/_internal/21b83d16.js +137 -0
  26. package/_internal/21b83d16.js.map +1 -0
  27. package/_internal/230173a8.js +13 -0
  28. package/_internal/230173a8.js.map +1 -0
  29. package/_internal/297bed8f.js +457 -0
  30. package/_internal/297bed8f.js.map +1 -0
  31. package/_internal/2a3d237c.js +12 -0
  32. package/_internal/2a3d237c.js.map +1 -0
  33. package/_internal/2c2b6a89.js +52 -0
  34. package/_internal/2c2b6a89.js.map +1 -0
  35. package/_internal/2f1716fa.js +237 -0
  36. package/_internal/2f1716fa.js.map +1 -0
  37. package/_internal/2f6c7f84.js +103 -0
  38. package/_internal/2f6c7f84.js.map +1 -0
  39. package/_internal/3181f000.js +14 -0
  40. package/_internal/3181f000.js.map +1 -0
  41. package/_internal/329b5f12.js +55 -0
  42. package/_internal/329b5f12.js.map +1 -0
  43. package/_internal/332e9844.js +2 -0
  44. package/_internal/332e9844.js.map +1 -0
  45. package/_internal/34c59f5b.js +681 -0
  46. package/_internal/34c59f5b.js.map +1 -0
  47. package/_internal/36bd7352.js +219 -0
  48. package/_internal/36bd7352.js.map +1 -0
  49. package/_internal/370bdaed.js +61 -0
  50. package/_internal/370bdaed.js.map +1 -0
  51. package/_internal/37b007a4.js +20 -0
  52. package/_internal/37b007a4.js.map +1 -0
  53. package/_internal/3a1facc0.js +18 -0
  54. package/_internal/3a1facc0.js.map +1 -0
  55. package/_internal/3a4e4636.js +162 -0
  56. package/_internal/3a4e4636.js.map +1 -0
  57. package/_internal/3e653144.js +49 -0
  58. package/_internal/3e653144.js.map +1 -0
  59. package/_internal/3f86608e.js +45 -0
  60. package/_internal/3f86608e.js.map +1 -0
  61. package/_internal/478b5c92.js +24 -0
  62. package/_internal/478b5c92.js.map +1 -0
  63. package/_internal/4962be5b.js +121 -0
  64. package/_internal/4962be5b.js.map +1 -0
  65. package/_internal/49bbeed3.js +6 -0
  66. package/_internal/49bbeed3.js.map +1 -0
  67. package/_internal/4cd870a5.js +2155 -0
  68. package/_internal/4cd870a5.js.map +1 -0
  69. package/{src/utils/partitionMulti.ts → _internal/4daccdd5.js} +5 -9
  70. package/_internal/4daccdd5.js.map +1 -0
  71. package/_internal/501f2f9f.js +58 -0
  72. package/_internal/501f2f9f.js.map +1 -0
  73. package/_internal/5e7b90e2.js +2 -0
  74. package/_internal/5e7b90e2.js.map +1 -0
  75. package/_internal/5ec059fe.js +145 -0
  76. package/_internal/5ec059fe.js.map +1 -0
  77. package/_internal/5f8f9454.js +70 -0
  78. package/_internal/5f8f9454.js.map +1 -0
  79. package/_internal/5fe09341.js +112 -0
  80. package/_internal/5fe09341.js.map +1 -0
  81. package/_internal/628468c4.js +313 -0
  82. package/_internal/628468c4.js.map +1 -0
  83. package/_internal/6589b796.js +280 -0
  84. package/_internal/6589b796.js.map +1 -0
  85. package/_internal/65f91970.js +297 -0
  86. package/_internal/65f91970.js.map +1 -0
  87. package/_internal/66f691d3.js +74 -0
  88. package/_internal/66f691d3.js.map +1 -0
  89. package/_internal/68c10f98.js +166 -0
  90. package/_internal/68c10f98.js.map +1 -0
  91. package/_internal/690ca33e.js +109 -0
  92. package/_internal/690ca33e.js.map +1 -0
  93. package/_internal/6ca04271.js +108 -0
  94. package/_internal/6ca04271.js.map +1 -0
  95. package/_internal/6da19518.js +165 -0
  96. package/_internal/6da19518.js.map +1 -0
  97. package/_internal/7093ba23.js +95 -0
  98. package/_internal/7093ba23.js.map +1 -0
  99. package/_internal/74a4a214.js +82 -0
  100. package/_internal/74a4a214.js.map +1 -0
  101. package/_internal/76be70dd.js +42 -0
  102. package/_internal/76be70dd.js.map +1 -0
  103. package/_internal/78df9309.js +20 -0
  104. package/_internal/78df9309.js.map +1 -0
  105. package/_internal/7b221b05.js +9 -0
  106. package/_internal/7b221b05.js.map +1 -0
  107. package/_internal/7daf0f24.js +77 -0
  108. package/_internal/7daf0f24.js.map +1 -0
  109. package/_internal/7f54e947.js +758 -0
  110. package/_internal/7f54e947.js.map +1 -0
  111. package/_internal/825ac334.js +130 -0
  112. package/_internal/825ac334.js.map +1 -0
  113. package/_internal/827b804a.js +6 -0
  114. package/_internal/827b804a.js.map +1 -0
  115. package/_internal/84dfe68f.js +436 -0
  116. package/_internal/84dfe68f.js.map +1 -0
  117. package/_internal/85e3a5ca.js +145 -0
  118. package/_internal/85e3a5ca.js.map +1 -0
  119. package/_internal/86aa4aa4.js +154 -0
  120. package/_internal/86aa4aa4.js.map +1 -0
  121. package/_internal/88ec77c2.js +130 -0
  122. package/_internal/88ec77c2.js.map +1 -0
  123. package/_internal/8ab42752.js +103 -0
  124. package/_internal/8ab42752.js.map +1 -0
  125. package/_internal/95cfd814.js +70 -0
  126. package/_internal/95cfd814.js.map +1 -0
  127. package/_internal/9a4dfad0.js +326 -0
  128. package/_internal/9a4dfad0.js.map +1 -0
  129. package/_internal/9c9df5f2.js +80 -0
  130. package/_internal/9c9df5f2.js.map +1 -0
  131. package/_internal/9d1336a1.js +19 -0
  132. package/_internal/9d1336a1.js.map +1 -0
  133. package/_internal/9fdc715b.js +152 -0
  134. package/_internal/9fdc715b.js.map +1 -0
  135. package/_internal/a003602b.js +116 -0
  136. package/_internal/a003602b.js.map +1 -0
  137. package/_internal/a34639bd.js +97 -0
  138. package/_internal/a34639bd.js.map +1 -0
  139. package/_internal/a84f4981.js +122 -0
  140. package/_internal/a84f4981.js.map +1 -0
  141. package/_internal/b0a7a999.js +59 -0
  142. package/_internal/b0a7a999.js.map +1 -0
  143. package/_internal/b0b2e33d.js +359 -0
  144. package/_internal/b0b2e33d.js.map +1 -0
  145. package/_internal/b1af5979.js +653 -0
  146. package/_internal/b1af5979.js.map +1 -0
  147. package/_internal/b477da26.js +164 -0
  148. package/_internal/b477da26.js.map +1 -0
  149. package/_internal/b8667090.js +36 -0
  150. package/_internal/b8667090.js.map +1 -0
  151. package/_internal/bae266a9.js +61 -0
  152. package/_internal/bae266a9.js.map +1 -0
  153. package/_internal/be6da9b0.js +296 -0
  154. package/_internal/be6da9b0.js.map +1 -0
  155. package/_internal/c0414b89.js +101 -0
  156. package/_internal/c0414b89.js.map +1 -0
  157. package/_internal/c2388b10.js +58 -0
  158. package/_internal/c2388b10.js.map +1 -0
  159. package/_internal/c459a04d.js +148 -0
  160. package/_internal/c459a04d.js.map +1 -0
  161. package/_internal/c6ca7494.js +2 -0
  162. package/_internal/c6ca7494.js.map +1 -0
  163. package/_internal/cdddaed8.js +116 -0
  164. package/_internal/cdddaed8.js.map +1 -0
  165. package/_internal/d0dd1815.js +10 -0
  166. package/_internal/d0dd1815.js.map +1 -0
  167. package/_internal/d45e3f16.js +15 -0
  168. package/_internal/d45e3f16.js.map +1 -0
  169. package/_internal/d5f316cb.js +62 -0
  170. package/_internal/d5f316cb.js.map +1 -0
  171. package/_internal/db4fdc7b.js +310 -0
  172. package/_internal/db4fdc7b.js.map +1 -0
  173. package/_internal/dbe0cf24.js +75 -0
  174. package/_internal/dbe0cf24.js.map +1 -0
  175. package/_internal/de24f857.js +4 -0
  176. package/_internal/de24f857.js.map +1 -0
  177. package/_internal/e2afb13f.js +75 -0
  178. package/_internal/e2afb13f.js.map +1 -0
  179. package/_internal/e52f0d3f.js +94 -0
  180. package/_internal/e52f0d3f.js.map +1 -0
  181. package/_internal/e6dd117e.js +50 -0
  182. package/_internal/e6dd117e.js.map +1 -0
  183. package/_internal/e806b848.js +9 -0
  184. package/_internal/e806b848.js.map +1 -0
  185. package/_internal/ea04260d.js +29 -0
  186. package/_internal/ea04260d.js.map +1 -0
  187. package/_internal/eaa8b1d8.js +150 -0
  188. package/_internal/eaa8b1d8.js.map +1 -0
  189. package/_internal/eaf6c45a.js +4 -0
  190. package/_internal/eaf6c45a.js.map +1 -0
  191. package/_internal/edab29ce.js +308 -0
  192. package/_internal/edab29ce.js.map +1 -0
  193. package/_internal/ef5d1aac.js +4 -0
  194. package/_internal/ef5d1aac.js.map +1 -0
  195. package/_internal/f0900583.js +142 -0
  196. package/_internal/f0900583.js.map +1 -0
  197. package/_internal/f0d7d6ea.js +30 -0
  198. package/_internal/f0d7d6ea.js.map +1 -0
  199. package/_internal/f23cdf84.js +181 -0
  200. package/_internal/f23cdf84.js.map +1 -0
  201. package/_internal/f52e979e.js +3 -0
  202. package/_internal/f52e979e.js.map +1 -0
  203. package/_internal/f5508d3d.js +792 -0
  204. package/_internal/f5508d3d.js.map +1 -0
  205. package/_internal/f93fe83e.js +46 -0
  206. package/_internal/f93fe83e.js.map +1 -0
  207. package/index.d.ts +1 -2
  208. package/index.js +65 -14607
  209. package/index.js.map +1 -1
  210. package/package.json +3 -15
  211. package/utils/index.d.ts +1 -1
  212. package/utils/index.js +3 -1
  213. package/utils/index.js.map +1 -1
  214. package/_internal/index.js +0 -229
  215. package/_internal/index.js.map +0 -1
  216. package/src/components/alert-dialog/AlertDialog.stories.tsx +0 -127
  217. package/src/components/alert-dialog/AlertDialog.test.tsx +0 -34
  218. package/src/components/alert-dialog/AlertDialog.tsx +0 -189
  219. package/src/components/alert-dialog/index.ts +0 -1
  220. package/src/components/autocomplete/Autocomplete.stories.tsx +0 -75
  221. package/src/components/autocomplete/Autocomplete.test.tsx +0 -99
  222. package/src/components/autocomplete/Autocomplete.tsx +0 -294
  223. package/src/components/autocomplete/AutocompleteMultiple.stories.tsx +0 -167
  224. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +0 -61
  225. package/src/components/autocomplete/AutocompleteMultiple.tsx +0 -156
  226. package/src/components/autocomplete/__mockData__/index.ts +0 -39
  227. package/src/components/autocomplete/index.ts +0 -2
  228. package/src/components/avatar/Avatar.stories.tsx +0 -119
  229. package/src/components/avatar/Avatar.test.tsx +0 -32
  230. package/src/components/avatar/Avatar.tsx +0 -114
  231. package/src/components/avatar/index.ts +0 -1
  232. package/src/components/badge/Badge.stories.tsx +0 -69
  233. package/src/components/badge/Badge.test.tsx +0 -45
  234. package/src/components/badge/Badge.tsx +0 -58
  235. package/src/components/badge/BadgeWrapper.stories.tsx +0 -75
  236. package/src/components/badge/BadgeWrapper.test.tsx +0 -47
  237. package/src/components/badge/BadgeWrapper.tsx +0 -37
  238. package/src/components/badge/index.ts +0 -2
  239. package/src/components/button/Button.stories.tsx +0 -355
  240. package/src/components/button/Button.test.tsx +0 -125
  241. package/src/components/button/Button.tsx +0 -101
  242. package/src/components/button/ButtonGroup.stories.tsx +0 -52
  243. package/src/components/button/ButtonGroup.test.tsx +0 -41
  244. package/src/components/button/ButtonGroup.tsx +0 -50
  245. package/src/components/button/ButtonRoot.tsx +0 -163
  246. package/src/components/button/IconButton.stories.tsx +0 -52
  247. package/src/components/button/IconButton.test.tsx +0 -66
  248. package/src/components/button/IconButton.tsx +0 -91
  249. package/src/components/button/index.ts +0 -4
  250. package/src/components/checkbox/Checkbox.stories.tsx +0 -64
  251. package/src/components/checkbox/Checkbox.test.tsx +0 -154
  252. package/src/components/checkbox/Checkbox.tsx +0 -164
  253. package/src/components/checkbox/index.ts +0 -1
  254. package/src/components/chip/Chip.stories.tsx +0 -164
  255. package/src/components/chip/Chip.test.tsx +0 -243
  256. package/src/components/chip/Chip.tsx +0 -168
  257. package/src/components/chip/ChipGroup.stories.tsx +0 -47
  258. package/src/components/chip/ChipGroup.test.tsx +0 -37
  259. package/src/components/chip/ChipGroup.tsx +0 -60
  260. package/src/components/chip/index.ts +0 -2
  261. package/src/components/comment-block/CommentBlock.stories.tsx +0 -91
  262. package/src/components/comment-block/CommentBlock.test.tsx +0 -28
  263. package/src/components/comment-block/CommentBlock.tsx +0 -172
  264. package/src/components/comment-block/index.ts +0 -1
  265. package/src/components/date-picker/DatePicker.stories.tsx +0 -118
  266. package/src/components/date-picker/DatePicker.test.tsx +0 -34
  267. package/src/components/date-picker/DatePicker.tsx +0 -52
  268. package/src/components/date-picker/DatePickerControlled.test.tsx +0 -91
  269. package/src/components/date-picker/DatePickerControlled.tsx +0 -259
  270. package/src/components/date-picker/DatePickerField.stories.tsx +0 -100
  271. package/src/components/date-picker/DatePickerField.test.tsx +0 -70
  272. package/src/components/date-picker/DatePickerField.tsx +0 -135
  273. package/src/components/date-picker/constants.ts +0 -11
  274. package/src/components/date-picker/index.ts +0 -4
  275. package/src/components/date-picker/types.ts +0 -28
  276. package/src/components/dialog/Dialog.stories.tsx +0 -318
  277. package/src/components/dialog/Dialog.test.tsx +0 -97
  278. package/src/components/dialog/Dialog.tsx +0 -288
  279. package/src/components/dialog/index.ts +0 -1
  280. package/src/components/divider/Divider.test.tsx +0 -51
  281. package/src/components/divider/Divider.tsx +0 -50
  282. package/src/components/divider/index.ts +0 -1
  283. package/src/components/drag-handle/DragHandle.test.tsx +0 -36
  284. package/src/components/drag-handle/DragHandle.tsx +0 -51
  285. package/src/components/drag-handle/index.ts +0 -1
  286. package/src/components/dropdown/Dropdown.stories.tsx +0 -31
  287. package/src/components/dropdown/Dropdown.test.tsx +0 -66
  288. package/src/components/dropdown/Dropdown.tsx +0 -186
  289. package/src/components/dropdown/index.ts +0 -1
  290. package/src/components/expansion-panel/ExpansionPanel.stories.tsx +0 -91
  291. package/src/components/expansion-panel/ExpansionPanel.test.tsx +0 -185
  292. package/src/components/expansion-panel/ExpansionPanel.tsx +0 -195
  293. package/src/components/expansion-panel/index.ts +0 -1
  294. package/src/components/flag/Flag.stories.tsx +0 -48
  295. package/src/components/flag/Flag.test.tsx +0 -62
  296. package/src/components/flag/Flag.tsx +0 -52
  297. package/src/components/flag/index.ts +0 -1
  298. package/src/components/flex-box/FlexBox.stories.tsx +0 -156
  299. package/src/components/flex-box/FlexBox.test.tsx +0 -24
  300. package/src/components/flex-box/FlexBox.tsx +0 -100
  301. package/src/components/flex-box/index.ts +0 -1
  302. package/src/components/generic-block/GenericBlock.stories.jsx +0 -128
  303. package/src/components/generic-block/GenericBlock.test.tsx +0 -156
  304. package/src/components/generic-block/GenericBlock.tsx +0 -225
  305. package/src/components/generic-block/constants.ts +0 -9
  306. package/src/components/generic-block/index.ts +0 -2
  307. package/src/components/grid/Grid.tsx +0 -83
  308. package/src/components/grid/GridItem.tsx +0 -55
  309. package/src/components/grid/index.ts +0 -2
  310. package/src/components/grid-column/GridColumn.stories.tsx +0 -45
  311. package/src/components/grid-column/GridColumn.test.jsx +0 -56
  312. package/src/components/grid-column/GridColumn.tsx +0 -83
  313. package/src/components/grid-column/index.ts +0 -1
  314. package/src/components/heading/Heading.stories.tsx +0 -69
  315. package/src/components/heading/Heading.test.tsx +0 -82
  316. package/src/components/heading/Heading.tsx +0 -65
  317. package/src/components/heading/HeadingLevelProvider.tsx +0 -30
  318. package/src/components/heading/constants.ts +0 -16
  319. package/src/components/heading/context.tsx +0 -13
  320. package/src/components/heading/index.ts +0 -3
  321. package/src/components/heading/useHeadingLevel.tsx +0 -8
  322. package/src/components/icon/Icon.stories.tsx +0 -73
  323. package/src/components/icon/Icon.test.tsx +0 -125
  324. package/src/components/icon/Icon.tsx +0 -22
  325. package/src/components/icon/index.ts +0 -1
  326. package/src/components/image-block/ImageBlock.stories.tsx +0 -117
  327. package/src/components/image-block/ImageBlock.test.tsx +0 -58
  328. package/src/components/image-block/ImageBlock.tsx +0 -142
  329. package/src/components/image-block/ImageCaption.tsx +0 -115
  330. package/src/components/image-block/index.ts +0 -1
  331. package/src/components/image-lightbox/ImageLightbox.stories.tsx +0 -160
  332. package/src/components/image-lightbox/ImageLightbox.test.tsx +0 -254
  333. package/src/components/image-lightbox/ImageLightbox.tsx +0 -90
  334. package/src/components/image-lightbox/constants.ts +0 -11
  335. package/src/components/image-lightbox/index.ts +0 -2
  336. package/src/components/image-lightbox/internal/ImageSlide.tsx +0 -107
  337. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +0 -164
  338. package/src/components/image-lightbox/internal/useAnimateScroll.ts +0 -55
  339. package/src/components/image-lightbox/internal/usePointerZoom.ts +0 -148
  340. package/src/components/image-lightbox/types.ts +0 -48
  341. package/src/components/image-lightbox/useImageLightbox.tsx +0 -141
  342. package/src/components/inline-list/InlineList.stories.tsx +0 -77
  343. package/src/components/inline-list/InlineList.test.tsx +0 -52
  344. package/src/components/inline-list/InlineList.tsx +0 -96
  345. package/src/components/inline-list/index.ts +0 -1
  346. package/src/components/input-helper/InputHelper.stories.tsx +0 -35
  347. package/src/components/input-helper/InputHelper.test.tsx +0 -55
  348. package/src/components/input-helper/InputHelper.tsx +0 -65
  349. package/src/components/input-helper/constants.ts +0 -11
  350. package/src/components/input-helper/index.ts +0 -1
  351. package/src/components/input-label/InputLabel.stories.tsx +0 -45
  352. package/src/components/input-label/InputLabel.test.tsx +0 -59
  353. package/src/components/input-label/InputLabel.tsx +0 -69
  354. package/src/components/input-label/index.ts +0 -1
  355. package/src/components/lightbox/Lightbox.stories.tsx +0 -101
  356. package/src/components/lightbox/Lightbox.test.tsx +0 -53
  357. package/src/components/lightbox/Lightbox.tsx +0 -180
  358. package/src/components/lightbox/index.ts +0 -1
  359. package/src/components/link/Link.stories.tsx +0 -195
  360. package/src/components/link/Link.test.tsx +0 -127
  361. package/src/components/link/Link.tsx +0 -106
  362. package/src/components/link/index.ts +0 -1
  363. package/src/components/link-preview/LinkPreview.stories.tsx +0 -61
  364. package/src/components/link-preview/LinkPreview.test.tsx +0 -105
  365. package/src/components/link-preview/LinkPreview.tsx +0 -158
  366. package/src/components/link-preview/index.ts +0 -1
  367. package/src/components/list/List.stories.tsx +0 -116
  368. package/src/components/list/List.test.tsx +0 -18
  369. package/src/components/list/List.tsx +0 -104
  370. package/src/components/list/ListDivider.stories.tsx +0 -12
  371. package/src/components/list/ListDivider.test.tsx +0 -22
  372. package/src/components/list/ListDivider.tsx +0 -35
  373. package/src/components/list/ListItem.stories.tsx +0 -66
  374. package/src/components/list/ListItem.test.tsx +0 -93
  375. package/src/components/list/ListItem.tsx +0 -157
  376. package/src/components/list/ListSubheader.stories.tsx +0 -11
  377. package/src/components/list/ListSubheader.test.tsx +0 -21
  378. package/src/components/list/ListSubheader.tsx +0 -44
  379. package/src/components/list/index.ts +0 -4
  380. package/src/components/list/useInteractiveList.tsx +0 -202
  381. package/src/components/message/Message.stories.tsx +0 -72
  382. package/src/components/message/Message.test.tsx +0 -76
  383. package/src/components/message/Message.tsx +0 -100
  384. package/src/components/message/index.ts +0 -1
  385. package/src/components/mosaic/Mosaic.stories.tsx +0 -89
  386. package/src/components/mosaic/Mosaic.test.tsx +0 -77
  387. package/src/components/mosaic/Mosaic.tsx +0 -98
  388. package/src/components/mosaic/index.ts +0 -1
  389. package/src/components/navigation/Navigation.stories.tsx +0 -234
  390. package/src/components/navigation/Navigation.test.tsx +0 -65
  391. package/src/components/navigation/Navigation.tsx +0 -79
  392. package/src/components/navigation/NavigationItem.test.tsx +0 -35
  393. package/src/components/navigation/NavigationItem.tsx +0 -82
  394. package/src/components/navigation/NavigationSection.test.tsx +0 -137
  395. package/src/components/navigation/NavigationSection.tsx +0 -108
  396. package/src/components/navigation/context.tsx +0 -7
  397. package/src/components/navigation/index.ts +0 -1
  398. package/src/components/notification/Notification.test.tsx +0 -94
  399. package/src/components/notification/Notification.tsx +0 -138
  400. package/src/components/notification/Notifications.stories.tsx +0 -92
  401. package/src/components/notification/constants.ts +0 -28
  402. package/src/components/notification/index.ts +0 -1
  403. package/src/components/popover/Popover.stories.tsx +0 -264
  404. package/src/components/popover/Popover.test.tsx +0 -62
  405. package/src/components/popover/Popover.tsx +0 -201
  406. package/src/components/popover/constants.ts +0 -62
  407. package/src/components/popover/index.ts +0 -3
  408. package/src/components/popover/usePopoverStyle.tsx +0 -184
  409. package/src/components/popover/useRestoreFocusOnClose.tsx +0 -47
  410. package/src/components/popover-dialog/PopoverDialog.stories.tsx +0 -64
  411. package/src/components/popover-dialog/PopoverDialog.test.tsx +0 -139
  412. package/src/components/popover-dialog/PopoverDialog.tsx +0 -74
  413. package/src/components/popover-dialog/index.tsx +0 -1
  414. package/src/components/post-block/PostBlock.test.tsx +0 -27
  415. package/src/components/post-block/PostBlock.tsx +0 -122
  416. package/src/components/post-block/index.ts +0 -1
  417. package/src/components/progress/Progress.tsx +0 -68
  418. package/src/components/progress/ProgressCircular.stories.tsx +0 -43
  419. package/src/components/progress/ProgressCircular.test.tsx +0 -46
  420. package/src/components/progress/ProgressCircular.tsx +0 -82
  421. package/src/components/progress/ProgressLinear.stories.tsx +0 -12
  422. package/src/components/progress/ProgressLinear.test.tsx +0 -30
  423. package/src/components/progress/ProgressLinear.tsx +0 -50
  424. package/src/components/progress/index.ts +0 -3
  425. package/src/components/progress-tracker/ProgressTracker.stories.tsx +0 -145
  426. package/src/components/progress-tracker/ProgressTracker.test.tsx +0 -42
  427. package/src/components/progress-tracker/ProgressTracker.tsx +0 -87
  428. package/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +0 -65
  429. package/src/components/progress-tracker/ProgressTrackerProvider.tsx +0 -67
  430. package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +0 -36
  431. package/src/components/progress-tracker/ProgressTrackerStep.tsx +0 -159
  432. package/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +0 -34
  433. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +0 -67
  434. package/src/components/progress-tracker/index.ts +0 -4
  435. package/src/components/radio-button/RadioButton.stories.tsx +0 -71
  436. package/src/components/radio-button/RadioButton.test.tsx +0 -143
  437. package/src/components/radio-button/RadioButton.tsx +0 -143
  438. package/src/components/radio-button/RadioGroup.stories.tsx +0 -39
  439. package/src/components/radio-button/RadioGroup.test.tsx +0 -29
  440. package/src/components/radio-button/RadioGroup.tsx +0 -44
  441. package/src/components/radio-button/index.ts +0 -2
  442. package/src/components/select/Select.stories.tsx +0 -385
  443. package/src/components/select/Select.test.tsx +0 -199
  444. package/src/components/select/Select.tsx +0 -199
  445. package/src/components/select/SelectMultiple.stories.tsx +0 -315
  446. package/src/components/select/SelectMultiple.test.tsx +0 -213
  447. package/src/components/select/SelectMultiple.tsx +0 -206
  448. package/src/components/select/WithSelectContext.tsx +0 -147
  449. package/src/components/select/constants.ts +0 -55
  450. package/src/components/select/index.ts +0 -2
  451. package/src/components/side-navigation/SideNavigation.stories.tsx +0 -191
  452. package/src/components/side-navigation/SideNavigation.test.tsx +0 -37
  453. package/src/components/side-navigation/SideNavigation.tsx +0 -52
  454. package/src/components/side-navigation/SideNavigationItem.stories.tsx +0 -133
  455. package/src/components/side-navigation/SideNavigationItem.test.tsx +0 -136
  456. package/src/components/side-navigation/SideNavigationItem.tsx +0 -165
  457. package/src/components/side-navigation/index.ts +0 -2
  458. package/src/components/skeleton/SkeletonCircle.stories.tsx +0 -41
  459. package/src/components/skeleton/SkeletonCircle.test.tsx +0 -27
  460. package/src/components/skeleton/SkeletonCircle.tsx +0 -52
  461. package/src/components/skeleton/SkeletonRectangle.stories.tsx +0 -82
  462. package/src/components/skeleton/SkeletonRectangle.test.tsx +0 -27
  463. package/src/components/skeleton/SkeletonRectangle.tsx +0 -88
  464. package/src/components/skeleton/SkeletonTypography.stories.tsx +0 -19
  465. package/src/components/skeleton/SkeletonTypography.test.tsx +0 -27
  466. package/src/components/skeleton/SkeletonTypography.tsx +0 -59
  467. package/src/components/skeleton/index.ts +0 -3
  468. package/src/components/slider/Slider.stories.tsx +0 -45
  469. package/src/components/slider/Slider.test.tsx +0 -29
  470. package/src/components/slider/Slider.tsx +0 -299
  471. package/src/components/slider/index.ts +0 -2
  472. package/src/components/slideshow/Slides.tsx +0 -130
  473. package/src/components/slideshow/Slideshow.stories.tsx +0 -179
  474. package/src/components/slideshow/Slideshow.test.tsx +0 -35
  475. package/src/components/slideshow/Slideshow.tsx +0 -173
  476. package/src/components/slideshow/SlideshowControls.stories.tsx +0 -100
  477. package/src/components/slideshow/SlideshowControls.tsx +0 -243
  478. package/src/components/slideshow/SlideshowItem.tsx +0 -44
  479. package/src/components/slideshow/SlideshowItemGroup.tsx +0 -60
  480. package/src/components/slideshow/constants.ts +0 -24
  481. package/src/components/slideshow/index.ts +0 -4
  482. package/src/components/slideshow/useKeyNavigate.ts +0 -28
  483. package/src/components/slideshow/usePaginationVisibleRange.ts +0 -37
  484. package/src/components/slideshow/useSlideFocusManagement.tsx +0 -92
  485. package/src/components/slideshow/useSwipeNavigate.ts +0 -18
  486. package/src/components/switch/Switch.stories.tsx +0 -49
  487. package/src/components/switch/Switch.test.tsx +0 -144
  488. package/src/components/switch/Switch.tsx +0 -145
  489. package/src/components/switch/index.ts +0 -1
  490. package/src/components/table/Table.test.tsx +0 -29
  491. package/src/components/table/Table.tsx +0 -59
  492. package/src/components/table/TableBody.test.tsx +0 -30
  493. package/src/components/table/TableBody.tsx +0 -42
  494. package/src/components/table/TableCell.test.tsx +0 -72
  495. package/src/components/table/TableCell.tsx +0 -130
  496. package/src/components/table/TableHeader.test.tsx +0 -30
  497. package/src/components/table/TableHeader.tsx +0 -48
  498. package/src/components/table/TableRow.test.tsx +0 -40
  499. package/src/components/table/TableRow.tsx +0 -71
  500. package/src/components/table/index.ts +0 -5
  501. package/src/components/tabs/Tab.test.tsx +0 -50
  502. package/src/components/tabs/Tab.tsx +0 -133
  503. package/src/components/tabs/TabList.test.tsx +0 -49
  504. package/src/components/tabs/TabList.tsx +0 -94
  505. package/src/components/tabs/TabPanel.test.tsx +0 -37
  506. package/src/components/tabs/TabPanel.tsx +0 -67
  507. package/src/components/tabs/TabProvider.test.tsx +0 -161
  508. package/src/components/tabs/TabProvider.tsx +0 -67
  509. package/src/components/tabs/Tabs.stories.tsx +0 -170
  510. package/src/components/tabs/index.ts +0 -4
  511. package/src/components/tabs/state.ts +0 -114
  512. package/src/components/tabs/test-utils.ts +0 -39
  513. package/src/components/text/Text.stories.tsx +0 -177
  514. package/src/components/text/Text.test.tsx +0 -92
  515. package/src/components/text/Text.tsx +0 -139
  516. package/src/components/text/index.ts +0 -1
  517. package/src/components/text-field/TextField.stories.tsx +0 -180
  518. package/src/components/text-field/TextField.test.tsx +0 -298
  519. package/src/components/text-field/TextField.tsx +0 -493
  520. package/src/components/text-field/index.ts +0 -1
  521. package/src/components/thumbnail/Thumbnail.stories.tsx +0 -448
  522. package/src/components/thumbnail/Thumbnail.test.tsx +0 -88
  523. package/src/components/thumbnail/Thumbnail.tsx +0 -248
  524. package/src/components/thumbnail/index.ts +0 -3
  525. package/src/components/thumbnail/types.ts +0 -48
  526. package/src/components/thumbnail/useFocusPointStyle.test.ts +0 -92
  527. package/src/components/thumbnail/useFocusPointStyle.tsx +0 -107
  528. package/src/components/thumbnail/useImageLoad.ts +0 -40
  529. package/src/components/toolbar/Toolbar.tsx +0 -68
  530. package/src/components/toolbar/index.ts +0 -1
  531. package/src/components/tooltip/Tooltip.stories.tsx +0 -118
  532. package/src/components/tooltip/Tooltip.test.tsx +0 -417
  533. package/src/components/tooltip/Tooltip.tsx +0 -165
  534. package/src/components/tooltip/constants.ts +0 -8
  535. package/src/components/tooltip/context.tsx +0 -17
  536. package/src/components/tooltip/index.ts +0 -1
  537. package/src/components/tooltip/useInjectTooltipRef.tsx +0 -55
  538. package/src/components/tooltip/useTooltipOpen.tsx +0 -143
  539. package/src/components/uploader/Uploader.stories.tsx +0 -109
  540. package/src/components/uploader/Uploader.test.tsx +0 -146
  541. package/src/components/uploader/Uploader.tsx +0 -177
  542. package/src/components/uploader/index.ts +0 -1
  543. package/src/components/user-block/UserBlock.stories.tsx +0 -133
  544. package/src/components/user-block/UserBlock.test.tsx +0 -106
  545. package/src/components/user-block/UserBlock.tsx +0 -193
  546. package/src/components/user-block/index.ts +0 -1
  547. package/src/constants.ts +0 -27
  548. package/src/hooks/useBooleanState.tsx +0 -13
  549. package/src/hooks/useCallbackOnEscape.ts +0 -34
  550. package/src/hooks/useChipGroupNavigation.tsx +0 -75
  551. package/src/hooks/useClickAway.tsx +0 -48
  552. package/src/hooks/useDisableBodyScroll.ts +0 -28
  553. package/src/hooks/useEventCallback.tsx +0 -17
  554. package/src/hooks/useFocus.tsx +0 -21
  555. package/src/hooks/useFocusTrap.ts +0 -93
  556. package/src/hooks/useFocusWithin.ts +0 -33
  557. package/src/hooks/useId.test.tsx +0 -22
  558. package/src/hooks/useId.ts +0 -15
  559. package/src/hooks/useImageSize.ts +0 -17
  560. package/src/hooks/useInfiniteScroll.tsx +0 -60
  561. package/src/hooks/useIntersectionObserver.tsx +0 -43
  562. package/src/hooks/useInterval.tsx +0 -31
  563. package/src/hooks/useKeyboardListNavigation.tsx +0 -204
  564. package/src/hooks/useListenFocus.tsx +0 -26
  565. package/src/hooks/useOverflowTooltipLabel.tsx +0 -32
  566. package/src/hooks/usePopper.ts +0 -12
  567. package/src/hooks/usePreviousValue.ts +0 -12
  568. package/src/hooks/useRovingTabIndex.tsx +0 -90
  569. package/src/hooks/useSizeOnWindowResize.ts +0 -30
  570. package/src/hooks/useSlideshowControls.ts +0 -246
  571. package/src/hooks/useStopPropagation.ts +0 -21
  572. package/src/hooks/useTransitionVisibility.ts +0 -48
  573. package/src/index.ts +0 -63
  574. package/src/stories/controls/color.ts +0 -7
  575. package/src/stories/controls/element.ts +0 -6
  576. package/src/stories/controls/focusPoint.ts +0 -1
  577. package/src/stories/controls/icons.ts +0 -126
  578. package/src/stories/controls/image.ts +0 -84
  579. package/src/stories/controls/selectArgType.ts +0 -8
  580. package/src/stories/controls/theme.ts +0 -3
  581. package/src/stories/controls/typography.ts +0 -5
  582. package/src/stories/controls/withUndefined.ts +0 -1
  583. package/src/stories/decorators/withChromaticForceScreenSize.tsx +0 -7
  584. package/src/stories/decorators/withCombinations.tsx +0 -132
  585. package/src/stories/decorators/withNestedProps.tsx +0 -22
  586. package/src/stories/decorators/withResizableBox.tsx +0 -21
  587. package/src/stories/decorators/withThemedBackground.tsx +0 -16
  588. package/src/stories/decorators/withValueOnChange.tsx +0 -18
  589. package/src/stories/decorators/withWrapper.tsx +0 -19
  590. package/src/stories/generated/Autocomplete/Demos.stories.tsx +0 -7
  591. package/src/stories/generated/Avatar/Demos.stories.tsx +0 -7
  592. package/src/stories/generated/Badge/Demos.stories.tsx +0 -9
  593. package/src/stories/generated/Button/Demos.stories.tsx +0 -11
  594. package/src/stories/generated/Checkbox/Demos.stories.tsx +0 -6
  595. package/src/stories/generated/Chip/Demos.stories.tsx +0 -11
  596. package/src/stories/generated/CommentBlock/Demos.stories.tsx +0 -8
  597. package/src/stories/generated/DatePicker/Demos.stories.tsx +0 -8
  598. package/src/stories/generated/Dialog/Demos.stories.tsx +0 -10
  599. package/src/stories/generated/Divider/Demos.stories.tsx +0 -6
  600. package/src/stories/generated/Dropdown/Demos.stories.tsx +0 -8
  601. package/src/stories/generated/ExpansionPanel/Demos.stories.tsx +0 -9
  602. package/src/stories/generated/Flag/Demos.stories.tsx +0 -6
  603. package/src/stories/generated/GenericBlock/Demos.stories.tsx +0 -8
  604. package/src/stories/generated/Heading/Demos.stories.tsx +0 -6
  605. package/src/stories/generated/Icon/Demos.stories.tsx +0 -8
  606. package/src/stories/generated/ImageBlock/Demos.stories.tsx +0 -9
  607. package/src/stories/generated/ImageLightbox/Demos.stories.tsx +0 -6
  608. package/src/stories/generated/Lightbox/Demos.stories.tsx +0 -6
  609. package/src/stories/generated/LinkPreview/Demos.stories.tsx +0 -7
  610. package/src/stories/generated/List/Demos.stories.tsx +0 -11
  611. package/src/stories/generated/Message/Demos.stories.tsx +0 -11
  612. package/src/stories/generated/Mosaic/Demos.stories.tsx +0 -10
  613. package/src/stories/generated/Notification/Demos.stories.tsx +0 -6
  614. package/src/stories/generated/Popover/Demos.stories.tsx +0 -11
  615. package/src/stories/generated/PopoverDialog/Demos.stories.tsx +0 -6
  616. package/src/stories/generated/PostBlock/Demos.stories.tsx +0 -6
  617. package/src/stories/generated/Progress/Demos.stories.tsx +0 -7
  618. package/src/stories/generated/ProgressTracker/Demos.stories.tsx +0 -9
  619. package/src/stories/generated/RadioButton/Demos.stories.tsx +0 -6
  620. package/src/stories/generated/Select/Demos.stories.tsx +0 -14
  621. package/src/stories/generated/SideNavigation/Demos.stories.tsx +0 -10
  622. package/src/stories/generated/Skeleton/Demos.stories.tsx +0 -9
  623. package/src/stories/generated/Slider/Demos.stories.tsx +0 -9
  624. package/src/stories/generated/Slideshow/Demos.stories.tsx +0 -8
  625. package/src/stories/generated/Switch/Demos.stories.tsx +0 -6
  626. package/src/stories/generated/Table/Demos.stories.tsx +0 -7
  627. package/src/stories/generated/Tabs/Demos.stories.tsx +0 -8
  628. package/src/stories/generated/TextField/Demos.stories.tsx +0 -20
  629. package/src/stories/generated/Thumbnail/Demos.stories.tsx +0 -12
  630. package/src/stories/generated/Toolbar/Demos.stories.tsx +0 -10
  631. package/src/stories/generated/Tooltip/Demos.stories.tsx +0 -8
  632. package/src/stories/generated/Uploader/Demos.stories.tsx +0 -8
  633. package/src/stories/generated/UserBlock/Demos.stories.tsx +0 -11
  634. package/src/stories/utils/CustomLink.tsx +0 -12
  635. package/src/stories/utils/concatPath.tsx +0 -17
  636. package/src/stories/utils/disableArgTypes.ts +0 -3
  637. package/src/stories/utils/initDemoShadowDOMPortal.ts +0 -10
  638. package/src/stories/utils/lorem.ts +0 -59
  639. package/src/stories/utils/theming.tsx +0 -166
  640. package/src/stories/utils/toFlattenProps.ts +0 -28
  641. package/src/stories/utils/withCategory.ts +0 -12
  642. package/src/testing/utils/ThemeSentinel.tsx +0 -10
  643. package/src/testing/utils/commonTestsSuiteRTL.tsx +0 -193
  644. package/src/testing/utils/index.ts +0 -1
  645. package/src/testing/utils/queries.ts +0 -19
  646. package/src/untypped-modules.d.ts +0 -9
  647. package/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +0 -70
  648. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +0 -69
  649. package/src/utils/ClickAwayProvider/index.ts +0 -1
  650. package/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +0 -54
  651. package/src/utils/MaterialThemeSwitcher/index.ts +0 -1
  652. package/src/utils/Portal/Portal.test.tsx +0 -31
  653. package/src/utils/Portal/Portal.tsx +0 -33
  654. package/src/utils/Portal/PortalProvider.stories.jsx +0 -22
  655. package/src/utils/Portal/PortalProvider.test.tsx +0 -72
  656. package/src/utils/Portal/PortalProvider.tsx +0 -24
  657. package/src/utils/Portal/index.tsx +0 -2
  658. package/src/utils/browser/DOM/findImage.tsx +0 -3
  659. package/src/utils/browser/DOM/startViewTransition.ts +0 -68
  660. package/src/utils/browser/focus/constants.ts +0 -7
  661. package/src/utils/browser/focus/getFirstAndLastFocusable.test.ts +0 -134
  662. package/src/utils/browser/focus/getFirstAndLastFocusable.ts +0 -21
  663. package/src/utils/browser/focus/getFocusableElements.test.ts +0 -151
  664. package/src/utils/browser/focus/getFocusableElements.ts +0 -7
  665. package/src/utils/browser/isFocusVisible.ts +0 -9
  666. package/src/utils/browser/isHoverNotSupported.test.js +0 -24
  667. package/src/utils/browser/isHoverNotSupported.ts +0 -2
  668. package/src/utils/browser/isReducedMotion.ts +0 -6
  669. package/src/utils/date/addMonthResetDay.test.ts +0 -13
  670. package/src/utils/date/addMonthResetDay.ts +0 -9
  671. package/src/utils/date/formatDayNumber.test.ts +0 -12
  672. package/src/utils/date/formatDayNumber.ts +0 -5
  673. package/src/utils/date/getFirstDayOfWeek.test.ts +0 -20
  674. package/src/utils/date/getFirstDayOfWeek.ts +0 -59
  675. package/src/utils/date/getMonthCalendar.test.ts +0 -127
  676. package/src/utils/date/getMonthCalendar.ts +0 -69
  677. package/src/utils/date/getWeekDays.test.ts +0 -48
  678. package/src/utils/date/getWeekDays.ts +0 -34
  679. package/src/utils/date/getYearDisplayName.test.ts +0 -20
  680. package/src/utils/date/getYearDisplayName.ts +0 -12
  681. package/src/utils/date/isDateValid.test.ts +0 -15
  682. package/src/utils/date/isDateValid.ts +0 -4
  683. package/src/utils/date/isSameDay.test.ts +0 -37
  684. package/src/utils/date/isSameDay.ts +0 -11
  685. package/src/utils/disabled/DisabledStateContext.tsx +0 -29
  686. package/src/utils/disabled/DisabledStateProvider.stories.tsx +0 -92
  687. package/src/utils/disabled/index.ts +0 -2
  688. package/src/utils/disabled/useDisableStateProps.test.tsx +0 -74
  689. package/src/utils/disabled/useDisableStateProps.tsx +0 -37
  690. package/src/utils/function/makeListenerTowerContext.ts +0 -32
  691. package/src/utils/index.ts +0 -7
  692. package/src/utils/locale/getCurrentLocale.ts +0 -4
  693. package/src/utils/locale/parseLocale.test.ts +0 -17
  694. package/src/utils/locale/parseLocale.ts +0 -23
  695. package/src/utils/locale/types.ts +0 -8
  696. package/src/utils/number/clamp.ts +0 -17
  697. package/src/utils/object/isEqual.test.ts +0 -25
  698. package/src/utils/object/isEqual.ts +0 -11
  699. package/src/utils/partitionMulti.test.ts +0 -27
  700. package/src/utils/react/OnBeforeUnmount.tsx +0 -20
  701. package/src/utils/react/RawClickable.test.tsx +0 -153
  702. package/src/utils/react/RawClickable.tsx +0 -65
  703. package/src/utils/react/flattenChildren.ts +0 -32
  704. package/src/utils/react/forwardRef.ts +0 -11
  705. package/src/utils/react/forwardRefPolymorphic.ts +0 -9
  706. package/src/utils/react/mergeRefs.ts +0 -33
  707. package/src/utils/react/renderLink.tsx +0 -17
  708. package/src/utils/react/skipRender.tsx +0 -18
  709. package/src/utils/react/unref.ts +0 -7
  710. package/src/utils/react/wrapChildrenIconWithSpaces.test.tsx +0 -37
  711. package/src/utils/react/wrapChildrenIconWithSpaces.tsx +0 -22
  712. package/src/utils/theme/ThemeContext.ts +0 -16
  713. package/src/utils/theme/invertTheme.ts +0 -4
  714. package/src/utils/type/Comp.ts +0 -14
  715. package/src/utils/type/ComponentRef.ts +0 -16
  716. package/src/utils/type/HasAriaDisabled.ts +0 -6
  717. package/src/utils/type/HasPolymorphicAs.ts +0 -6
  718. package/src/utils/type/HasRequiredLinkHref.ts +0 -1
  719. package/src/utils/type/MaybeElementOrRef.ts +0 -6
  720. package/src/utils/type/index.ts +0 -9
  721. package/src/utils/type/isComponent.ts +0 -33
  722. package/src/utils/type/isComponentType.ts +0 -9
  723. /package/_internal/{Falsy.d.ts → d95844c1.d.ts} +0 -0
@@ -0,0 +1,792 @@
1
+ import React__default, { useState, useEffect, useMemo, Children, isValidElement, cloneElement, useRef } from 'react';
2
+ import { m as getRootClassName, c as Size, n as forwardRef, l as classNames } from './6589b796.js';
3
+ import get from 'lodash/get';
4
+ import { h as handleBasicClasses } from './e2afb13f.js';
5
+ import { m as mergeRefs } from './f0d7d6ea.js';
6
+ import isEmpty from 'lodash/isEmpty';
7
+ import { o as onEnterPressed, b as onButtonPressed } from './88ec77c2.js';
8
+ import { u as useDisableStateProps } from './b8667090.js';
9
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
+ import { i as isComponent } from './78df9309.js';
11
+
12
+ const INITIAL_INDEX$1 = -1;
13
+
14
+ /**
15
+ * This custom hook provides the necessary set of functions and values to properly navigate
16
+ * a list using the keyboard.
17
+ *
18
+ * @param items the list of items that will be navigated using the keyboard.
19
+ * @param ref A reference to the element that is controlling the navigation.
20
+ * @param onListItemSelected callback to be executed when the ENTER key is pressed on an item.
21
+ * @param onListItemNavigated callback to be executed when the Arrow keys are pressed.
22
+ * @param onEnterPressed callback to be executed when the ENTER key is pressed.
23
+ * @param onBackspacePressed callback to be executed when the BACKSPACE key is pressed.
24
+ * @param keepFocusAfterSelection determines whether after selecting an item, the focus should be maintained on the current target or not.
25
+ * @param initialIndex where should the navigation start from. it defaults to `-1`, so the first item navigated is the item on position `0`.
26
+ * @param preventTabOnEnteredValue determines whether upon TAB, if there is a value entered, the event is prevented or not.
27
+ * @return useKeyboardListNavigation helpers.
28
+ */
29
+ const useKeyboardListNavigation = (items, ref, onListItemSelected, onListItemNavigated, onEnterPressed, onBackspacePressed, keepFocusAfterSelection = false, initialIndex = INITIAL_INDEX$1, preventTabOnEnteredValue = true) => {
30
+ const [activeItemIndex, setActiveItemIndex] = useState(initialIndex);
31
+
32
+ /**
33
+ * This function calculates the next index in the list to be highlighted
34
+ * @param key - key code pressed
35
+ * @return next active index
36
+ */
37
+ const calculateActiveIndex = key => {
38
+ switch (key) {
39
+ case 'ArrowDown':
40
+ return activeItemIndex + 1 < items.length ? activeItemIndex + 1 : 0;
41
+ case 'ArrowUp':
42
+ return activeItemIndex - 1 >= 0 ? activeItemIndex - 1 : items.length - 1;
43
+ default:
44
+ return initialIndex;
45
+ }
46
+ };
47
+
48
+ /**
49
+ * Resets the active index to the initial state
50
+ */
51
+ const resetActiveIndex = () => {
52
+ setActiveItemIndex(initialIndex);
53
+ };
54
+
55
+ /**
56
+ * Prevents the default event and stops the propagation of said event
57
+ * @param evt - key pressed event
58
+ */
59
+ const preventDefaultAndStopPropagation = evt => {
60
+ evt.preventDefault();
61
+ evt.stopPropagation();
62
+ };
63
+
64
+ /**
65
+ * Handles navigation with the arrows using the keyboard
66
+ * @param evt - key pressed event
67
+ */
68
+ const onArrowPressed = evt => {
69
+ const {
70
+ key
71
+ } = evt;
72
+ const nextActiveIndex = calculateActiveIndex(key);
73
+ setActiveItemIndex(nextActiveIndex);
74
+ preventDefaultAndStopPropagation(evt);
75
+ if (onListItemNavigated) {
76
+ const selectedItem = items[nextActiveIndex];
77
+ onListItemNavigated(selectedItem);
78
+ }
79
+ };
80
+
81
+ /**
82
+ * Handles the event when the backspace key is pressed
83
+ * @param evt - key pressed event
84
+ */
85
+ const onBackspaceKeyPressed = evt => {
86
+ if (onBackspacePressed) {
87
+ onBackspacePressed(evt);
88
+ }
89
+ };
90
+
91
+ /**
92
+ * Handles when the ENTER key is pressed
93
+ * @param evt - key pressed event
94
+ */
95
+ const onEnterKeyPressed = evt => {
96
+ if (!onListItemSelected) {
97
+ return;
98
+ }
99
+ preventDefaultAndStopPropagation(evt);
100
+ if (!keepFocusAfterSelection) {
101
+ evt.currentTarget.blur();
102
+ }
103
+ const selectedItem = items[activeItemIndex];
104
+ if (selectedItem) {
105
+ onListItemSelected(selectedItem);
106
+ resetActiveIndex();
107
+ } else if (activeItemIndex === initialIndex && onEnterPressed) {
108
+ const value = get(evt, 'target.value');
109
+ onEnterPressed(value);
110
+ resetActiveIndex();
111
+ }
112
+ };
113
+
114
+ /**
115
+ * Handles when the TAB key is pressed
116
+ * @param evt - key pressed event
117
+ */
118
+ const onTabKeyPressed = evt => {
119
+ const value = get(evt, 'target.value');
120
+ if (preventTabOnEnteredValue && value && value.length > 0) {
121
+ preventDefaultAndStopPropagation(evt);
122
+ }
123
+ };
124
+
125
+ /**
126
+ * In order to make it easier in the future to add new events depending on the key
127
+ * a map was created to add these handlers. In the future, if there is another event
128
+ * that we need to manage depending on a specific key, we just need to add the key code
129
+ * here, and as a value, the handler for said key.
130
+ */
131
+ const eventsForKeyPressed = {
132
+ ArrowDown: onArrowPressed,
133
+ Tab: onTabKeyPressed,
134
+ ArrowUp: onArrowPressed,
135
+ Enter: onEnterKeyPressed,
136
+ Backspace: onBackspaceKeyPressed
137
+ };
138
+
139
+ /**
140
+ * Calculates the next active item index depending on the key pressed.
141
+ * If the key pressed was ENTER, the function executes the callback `onListItemSelected`
142
+ * and resets the active index, since an item was selected.
143
+ * @param evt - key pressed or key down event
144
+ */
145
+ const onKeyboardNavigation = evt => {
146
+ const {
147
+ key
148
+ } = evt;
149
+ const handler = eventsForKeyPressed[key];
150
+ if (handler) {
151
+ handler(evt);
152
+ }
153
+ };
154
+ useEffect(() => {
155
+ const {
156
+ current: currentElement
157
+ } = ref;
158
+ if (!currentElement) {
159
+ return undefined;
160
+ }
161
+ currentElement.addEventListener('focus', resetActiveIndex);
162
+ currentElement.addEventListener('keydown', onKeyboardNavigation);
163
+ return () => {
164
+ currentElement.removeEventListener('focus', resetActiveIndex);
165
+ currentElement.removeEventListener('keydown', onKeyboardNavigation);
166
+ };
167
+ });
168
+ return {
169
+ activeItemIndex,
170
+ onKeyboardNavigation,
171
+ resetActiveIndex,
172
+ setActiveItemIndex
173
+ };
174
+ };
175
+
176
+ /**
177
+ * Render link with default <a> HTML component or a custom one provided by `linkAs`.
178
+ *
179
+ * Can be used to inject the `Link` component from `react-router` and provide better a11y on LumX components.
180
+ *
181
+ * @param linkAs Custom link component.
182
+ * @param children Link children.
183
+ * @return A link.
184
+ */
185
+ const renderLink = ({
186
+ linkAs,
187
+ ...forwardedProps
188
+ }, ...children) => /*#__PURE__*/React__default.createElement(linkAs || 'a', forwardedProps, ...children);
189
+
190
+ /**
191
+ * Component display name.
192
+ */
193
+ const COMPONENT_NAME$1 = 'ListItem';
194
+
195
+ /**
196
+ * Component default class name and class prefix.
197
+ */
198
+ const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
199
+
200
+ /**
201
+ * Component default props.
202
+ */
203
+ const DEFAULT_PROPS$1 = {
204
+ size: Size.regular
205
+ };
206
+
207
+ /**
208
+ * Check if the list item is clickable.
209
+ * @return `true` if the list item is clickable; `false` otherwise.
210
+ */
211
+ function isClickable({
212
+ linkProps,
213
+ onItemSelected
214
+ }) {
215
+ return !isEmpty(linkProps?.href) || !!onItemSelected;
216
+ }
217
+
218
+ /**
219
+ * ListItem component.
220
+ *
221
+ * @param props Component props.
222
+ * @param ref Component ref.
223
+ * @return React element.
224
+ */
225
+ const ListItem = forwardRef((props, ref) => {
226
+ const {
227
+ isAnyDisabled,
228
+ disabledStateProps,
229
+ otherProps
230
+ } = useDisableStateProps(props);
231
+ const {
232
+ after,
233
+ before,
234
+ children,
235
+ className,
236
+ isHighlighted,
237
+ isSelected,
238
+ linkAs,
239
+ linkProps = {},
240
+ linkRef,
241
+ onItemSelected,
242
+ size = DEFAULT_PROPS$1.size,
243
+ ...forwardedProps
244
+ } = otherProps;
245
+ const role = linkAs || linkProps.href ? 'link' : 'button';
246
+ const onKeyDown = useMemo(() => {
247
+ if (onItemSelected && role === 'link') return onEnterPressed(onItemSelected);
248
+ if (onItemSelected && role === 'button') return onButtonPressed(onItemSelected);
249
+ return undefined;
250
+ }, [role, onItemSelected]);
251
+ const content = /*#__PURE__*/jsxs(Fragment, {
252
+ children: [before && /*#__PURE__*/jsx("div", {
253
+ className: `${CLASSNAME$1}__before`,
254
+ children: before
255
+ }), /*#__PURE__*/jsx("div", {
256
+ className: `${CLASSNAME$1}__content`,
257
+ children: children
258
+ }), after && /*#__PURE__*/jsx("div", {
259
+ className: `${CLASSNAME$1}__after`,
260
+ children: after
261
+ })]
262
+ });
263
+ return /*#__PURE__*/jsx("li", {
264
+ ref: ref,
265
+ ...forwardedProps,
266
+ className: classNames(className, handleBasicClasses({
267
+ prefix: CLASSNAME$1,
268
+ size
269
+ })),
270
+ children: isClickable({
271
+ linkProps,
272
+ onItemSelected
273
+ }) ? (/* Clickable list item */
274
+ renderLink({
275
+ linkAs,
276
+ tabIndex: !disabledStateProps.disabled ? 0 : undefined,
277
+ role,
278
+ 'aria-disabled': isAnyDisabled,
279
+ ...linkProps,
280
+ href: isAnyDisabled ? undefined : linkProps.href,
281
+ className: classNames(handleBasicClasses({
282
+ prefix: `${CLASSNAME$1}__link`,
283
+ isHighlighted,
284
+ isSelected,
285
+ isDisabled: isAnyDisabled
286
+ })),
287
+ onClick: isAnyDisabled ? undefined : onItemSelected,
288
+ onKeyDown: isAnyDisabled ? undefined : onKeyDown,
289
+ ref: linkRef
290
+ }, content)) :
291
+ /*#__PURE__*/
292
+ /* Non clickable list item */
293
+ jsx("div", {
294
+ className: `${CLASSNAME$1}__wrapper`,
295
+ children: content
296
+ })
297
+ });
298
+ });
299
+ ListItem.displayName = COMPONENT_NAME$1;
300
+ ListItem.className = CLASSNAME$1;
301
+ ListItem.defaultProps = DEFAULT_PROPS$1;
302
+
303
+ var reactIs = {exports: {}};
304
+
305
+ var reactIs_production_min = {};
306
+
307
+ /**
308
+ * @license React
309
+ * react-is.production.min.js
310
+ *
311
+ * Copyright (c) Facebook, Inc. and its affiliates.
312
+ *
313
+ * This source code is licensed under the MIT license found in the
314
+ * LICENSE file in the root directory of this source tree.
315
+ */
316
+ var b=Symbol.for("react.element"),c=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),e=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),g=Symbol.for("react.provider"),h=Symbol.for("react.context"),k=Symbol.for("react.server_context"),l=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),n=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),t=Symbol.for("react.offscreen"),u;u=Symbol.for("react.module.reference");
317
+ function v(a){if("object"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}reactIs_production_min.ContextConsumer=h;reactIs_production_min.ContextProvider=g;reactIs_production_min.Element=b;reactIs_production_min.ForwardRef=l;reactIs_production_min.Fragment=d;reactIs_production_min.Lazy=q;reactIs_production_min.Memo=p;reactIs_production_min.Portal=c;reactIs_production_min.Profiler=f;reactIs_production_min.StrictMode=e;reactIs_production_min.Suspense=m;
318
+ reactIs_production_min.SuspenseList=n;reactIs_production_min.isAsyncMode=function(){return !1};reactIs_production_min.isConcurrentMode=function(){return !1};reactIs_production_min.isContextConsumer=function(a){return v(a)===h};reactIs_production_min.isContextProvider=function(a){return v(a)===g};reactIs_production_min.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===b};reactIs_production_min.isForwardRef=function(a){return v(a)===l};reactIs_production_min.isFragment=function(a){return v(a)===d};reactIs_production_min.isLazy=function(a){return v(a)===q};reactIs_production_min.isMemo=function(a){return v(a)===p};
319
+ reactIs_production_min.isPortal=function(a){return v(a)===c};reactIs_production_min.isProfiler=function(a){return v(a)===f};reactIs_production_min.isStrictMode=function(a){return v(a)===e};reactIs_production_min.isSuspense=function(a){return v(a)===m};reactIs_production_min.isSuspenseList=function(a){return v(a)===n};
320
+ reactIs_production_min.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||"object"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};reactIs_production_min.typeOf=v;
321
+
322
+ var reactIs_development = {};
323
+
324
+ /**
325
+ * @license React
326
+ * react-is.development.js
327
+ *
328
+ * Copyright (c) Facebook, Inc. and its affiliates.
329
+ *
330
+ * This source code is licensed under the MIT license found in the
331
+ * LICENSE file in the root directory of this source tree.
332
+ */
333
+
334
+ if (process.env.NODE_ENV !== "production") {
335
+ (function() {
336
+
337
+ // ATTENTION
338
+ // When adding new symbols to this file,
339
+ // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
340
+ // The Symbol used to tag the ReactElement-like types.
341
+ var REACT_ELEMENT_TYPE = Symbol.for('react.element');
342
+ var REACT_PORTAL_TYPE = Symbol.for('react.portal');
343
+ var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
344
+ var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
345
+ var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
346
+ var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
347
+ var REACT_CONTEXT_TYPE = Symbol.for('react.context');
348
+ var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
349
+ var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
350
+ var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
351
+ var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
352
+ var REACT_MEMO_TYPE = Symbol.for('react.memo');
353
+ var REACT_LAZY_TYPE = Symbol.for('react.lazy');
354
+ var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
355
+
356
+ // -----------------------------------------------------------------------------
357
+
358
+ var enableScopeAPI = false; // Experimental Create Event Handle API.
359
+ var enableCacheElement = false;
360
+ var enableTransitionTracing = false; // No known bugs, but needs performance testing
361
+
362
+ var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
363
+ // stuff. Intended to enable React core members to more easily debug scheduling
364
+ // issues in DEV builds.
365
+
366
+ var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
367
+
368
+ var REACT_MODULE_REFERENCE;
369
+
370
+ {
371
+ REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
372
+ }
373
+
374
+ function isValidElementType(type) {
375
+ if (typeof type === 'string' || typeof type === 'function') {
376
+ return true;
377
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
378
+
379
+
380
+ if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {
381
+ return true;
382
+ }
383
+
384
+ if (typeof type === 'object' && type !== null) {
385
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object
386
+ // types supported by any Flight configuration anywhere since
387
+ // we don't know which Flight build this will end up being used
388
+ // with.
389
+ type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
390
+ return true;
391
+ }
392
+ }
393
+
394
+ return false;
395
+ }
396
+
397
+ function typeOf(object) {
398
+ if (typeof object === 'object' && object !== null) {
399
+ var $$typeof = object.$$typeof;
400
+
401
+ switch ($$typeof) {
402
+ case REACT_ELEMENT_TYPE:
403
+ var type = object.type;
404
+
405
+ switch (type) {
406
+ case REACT_FRAGMENT_TYPE:
407
+ case REACT_PROFILER_TYPE:
408
+ case REACT_STRICT_MODE_TYPE:
409
+ case REACT_SUSPENSE_TYPE:
410
+ case REACT_SUSPENSE_LIST_TYPE:
411
+ return type;
412
+
413
+ default:
414
+ var $$typeofType = type && type.$$typeof;
415
+
416
+ switch ($$typeofType) {
417
+ case REACT_SERVER_CONTEXT_TYPE:
418
+ case REACT_CONTEXT_TYPE:
419
+ case REACT_FORWARD_REF_TYPE:
420
+ case REACT_LAZY_TYPE:
421
+ case REACT_MEMO_TYPE:
422
+ case REACT_PROVIDER_TYPE:
423
+ return $$typeofType;
424
+
425
+ default:
426
+ return $$typeof;
427
+ }
428
+
429
+ }
430
+
431
+ case REACT_PORTAL_TYPE:
432
+ return $$typeof;
433
+ }
434
+ }
435
+
436
+ return undefined;
437
+ }
438
+ var ContextConsumer = REACT_CONTEXT_TYPE;
439
+ var ContextProvider = REACT_PROVIDER_TYPE;
440
+ var Element = REACT_ELEMENT_TYPE;
441
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
442
+ var Fragment = REACT_FRAGMENT_TYPE;
443
+ var Lazy = REACT_LAZY_TYPE;
444
+ var Memo = REACT_MEMO_TYPE;
445
+ var Portal = REACT_PORTAL_TYPE;
446
+ var Profiler = REACT_PROFILER_TYPE;
447
+ var StrictMode = REACT_STRICT_MODE_TYPE;
448
+ var Suspense = REACT_SUSPENSE_TYPE;
449
+ var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
450
+ var hasWarnedAboutDeprecatedIsAsyncMode = false;
451
+ var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
452
+
453
+ function isAsyncMode(object) {
454
+ {
455
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
456
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
457
+
458
+ console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
459
+ }
460
+ }
461
+
462
+ return false;
463
+ }
464
+ function isConcurrentMode(object) {
465
+ {
466
+ if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
467
+ hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
468
+
469
+ console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
470
+ }
471
+ }
472
+
473
+ return false;
474
+ }
475
+ function isContextConsumer(object) {
476
+ return typeOf(object) === REACT_CONTEXT_TYPE;
477
+ }
478
+ function isContextProvider(object) {
479
+ return typeOf(object) === REACT_PROVIDER_TYPE;
480
+ }
481
+ function isElement(object) {
482
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
483
+ }
484
+ function isForwardRef(object) {
485
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
486
+ }
487
+ function isFragment(object) {
488
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
489
+ }
490
+ function isLazy(object) {
491
+ return typeOf(object) === REACT_LAZY_TYPE;
492
+ }
493
+ function isMemo(object) {
494
+ return typeOf(object) === REACT_MEMO_TYPE;
495
+ }
496
+ function isPortal(object) {
497
+ return typeOf(object) === REACT_PORTAL_TYPE;
498
+ }
499
+ function isProfiler(object) {
500
+ return typeOf(object) === REACT_PROFILER_TYPE;
501
+ }
502
+ function isStrictMode(object) {
503
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
504
+ }
505
+ function isSuspense(object) {
506
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
507
+ }
508
+ function isSuspenseList(object) {
509
+ return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
510
+ }
511
+
512
+ reactIs_development.ContextConsumer = ContextConsumer;
513
+ reactIs_development.ContextProvider = ContextProvider;
514
+ reactIs_development.Element = Element;
515
+ reactIs_development.ForwardRef = ForwardRef;
516
+ reactIs_development.Fragment = Fragment;
517
+ reactIs_development.Lazy = Lazy;
518
+ reactIs_development.Memo = Memo;
519
+ reactIs_development.Portal = Portal;
520
+ reactIs_development.Profiler = Profiler;
521
+ reactIs_development.StrictMode = StrictMode;
522
+ reactIs_development.Suspense = Suspense;
523
+ reactIs_development.SuspenseList = SuspenseList;
524
+ reactIs_development.isAsyncMode = isAsyncMode;
525
+ reactIs_development.isConcurrentMode = isConcurrentMode;
526
+ reactIs_development.isContextConsumer = isContextConsumer;
527
+ reactIs_development.isContextProvider = isContextProvider;
528
+ reactIs_development.isElement = isElement;
529
+ reactIs_development.isForwardRef = isForwardRef;
530
+ reactIs_development.isFragment = isFragment;
531
+ reactIs_development.isLazy = isLazy;
532
+ reactIs_development.isMemo = isMemo;
533
+ reactIs_development.isPortal = isPortal;
534
+ reactIs_development.isProfiler = isProfiler;
535
+ reactIs_development.isStrictMode = isStrictMode;
536
+ reactIs_development.isSuspense = isSuspense;
537
+ reactIs_development.isSuspenseList = isSuspenseList;
538
+ reactIs_development.isValidElementType = isValidElementType;
539
+ reactIs_development.typeOf = typeOf;
540
+ })();
541
+ }
542
+
543
+ if (process.env.NODE_ENV === 'production') {
544
+ reactIs.exports = reactIs_production_min;
545
+ } else {
546
+ reactIs.exports = reactIs_development;
547
+ }
548
+
549
+ /**
550
+ * Flatten list of react nodes removing fragments and adding keys.
551
+ * based on: https://github.com/grrowl/react-keyed-flatten-children/blob/5d421644a449765ddd62b659946196b4b5d7b135/index.ts
552
+ *
553
+ * @param children React nodes to flatten.
554
+ * @return Flattened react nodes.
555
+ * @deprecated This function was used to develop keyboard navigation in the List component,
556
+ * but we will replace this with a better method that does not require to hack the children inspection
557
+ *
558
+ * TODO: remove List keyboard navigation once we have provided alternative component (Menu, Combobox, etc.),
559
+ * remove this function and then remove react-is from the dependencies
560
+ */
561
+ function flattenChildren(children) {
562
+ function recur(nodes, keys = []) {
563
+ return Children.toArray(nodes).reduce((acc, node, index) => {
564
+ const nodeKeys = keys.concat(get(node, 'key') ?? index);
565
+ if (reactIs.exports.isFragment(node)) {
566
+ acc.push(...recur(node.props.children, nodeKeys));
567
+ } else if (/*#__PURE__*/isValidElement(node)) {
568
+ acc.push(/*#__PURE__*/cloneElement(node, {
569
+ key: nodeKeys.join('.')
570
+ }));
571
+ } else if (typeof node === 'string' || typeof node === 'number') {
572
+ acc.push(node);
573
+ }
574
+ return acc;
575
+ }, []);
576
+ }
577
+ return recur(children);
578
+ }
579
+
580
+ const INITIAL_INDEX = -1;
581
+ function onKeyboardFocus(props, handler) {
582
+ let isMouseDown = false;
583
+ return {
584
+ onFocus(evt) {
585
+ props.onFocus?.(evt);
586
+ if (!isMouseDown) {
587
+ handler(evt);
588
+ }
589
+ },
590
+ onMouseDown(evt) {
591
+ props.onMouseDown?.(evt);
592
+ isMouseDown = true;
593
+ },
594
+ onMouseUp(evt) {
595
+ props.onMouseUp?.(evt);
596
+ isMouseDown = false;
597
+ }
598
+ };
599
+ }
600
+ const isNavigableItem = node => {
601
+ return isComponent('ListItem')(node) && isClickable(node.props) && !node.props.isDisabled;
602
+ };
603
+
604
+ /**
605
+ * This custom hook detects clickable list item in a list and make them navigable with the keyboard.
606
+ *
607
+ * @param options See {@link Options}
608
+ * @return See {@link Output}
609
+ */
610
+ const useInteractiveList = options => {
611
+ const {
612
+ ref,
613
+ onListItemSelected,
614
+ onListItemNavigated
615
+ } = options;
616
+ const items = useMemo(() => flattenChildren(options.items), [options.items]);
617
+ const [activeItemIndex, setActiveItemIndex] = useState(INITIAL_INDEX);
618
+
619
+ // Attach listeners to the list.
620
+ useEffect(() => {
621
+ const {
622
+ current: listElement
623
+ } = ref;
624
+ if (!listElement) {
625
+ return undefined;
626
+ }
627
+
628
+ /**
629
+ * This function calculates the next index in the list to be active
630
+ * @param index current index
631
+ * @param code key code pressed
632
+ * @return next index
633
+ */
634
+ const getNextIndex = (index, key) => {
635
+ switch (key) {
636
+ case 'ArrowDown':
637
+ return index + 1 < items.length ? index + 1 : 0;
638
+ case 'ArrowUp':
639
+ return index - 1 >= 0 ? index - 1 : items.length - 1;
640
+ default:
641
+ return INITIAL_INDEX;
642
+ }
643
+ };
644
+
645
+ /**
646
+ * Resets the active index to the initial state
647
+ */
648
+ const resetActiveIndex = () => {
649
+ setActiveItemIndex(INITIAL_INDEX);
650
+ };
651
+
652
+ /**
653
+ * Handles navigation with the arrows using the keyboard
654
+ * @param evt Key event
655
+ */
656
+ const onArrowPressed = evt => {
657
+ const {
658
+ key
659
+ } = evt;
660
+ if (key !== 'ArrowUp' && key !== 'ArrowDown') {
661
+ return;
662
+ }
663
+ let nextIndex = activeItemIndex;
664
+ let iterations = 0;
665
+
666
+ // Move to next navigable item.
667
+ do {
668
+ nextIndex = getNextIndex(nextIndex, key);
669
+ iterations += 1;
670
+ } while (nextIndex !== INITIAL_INDEX && nextIndex !== activeItemIndex && !isNavigableItem(items[nextIndex]) && iterations < items.length);
671
+ setActiveItemIndex(nextIndex);
672
+ evt.preventDefault();
673
+ evt.stopPropagation();
674
+ onListItemNavigated?.(nextIndex, get(items, [nextIndex, 'key']));
675
+ };
676
+
677
+ /**
678
+ * Reset active list item index when focusing outside the list.
679
+ * @param evt Focus out event
680
+ */
681
+ const onFocusOut = evt => {
682
+ if (!evt.relatedTarget || !listElement.contains(evt.relatedTarget)) {
683
+ resetActiveIndex();
684
+ }
685
+ };
686
+ listElement.addEventListener('focusout', onFocusOut);
687
+ listElement.addEventListener('keydown', onArrowPressed);
688
+ return () => {
689
+ listElement.removeEventListener('focusout', onFocusOut);
690
+ listElement.removeEventListener('keydown', onArrowPressed);
691
+ };
692
+ }, [ref, activeItemIndex, items, onListItemNavigated]);
693
+ return useMemo(() => {
694
+ let hasClickableItem = false;
695
+ const transformedItems = items.map((item, index) => {
696
+ // Ignore if list not clickable or item is not a simple list item.
697
+ if (!isNavigableItem(item)) {
698
+ return item;
699
+ }
700
+ hasClickableItem = true;
701
+ const isHighlighted = index === activeItemIndex;
702
+
703
+ // Clone list item: inject ref, add tab index and active state.
704
+ return /*#__PURE__*/cloneElement(item, {
705
+ ...item.props,
706
+ isHighlighted: item.props.isHighlighted ?? isHighlighted,
707
+ linkRef: mergeRefs(item.props.linkRef, element => {
708
+ if (isHighlighted) {
709
+ element?.focus();
710
+ }
711
+ }),
712
+ onItemSelected(evt) {
713
+ item.props.onItemSelected?.();
714
+ onListItemSelected?.(index, item.key, evt);
715
+ },
716
+ ...onKeyboardFocus(item.props, () => {
717
+ setActiveItemIndex(index);
718
+ })
719
+ });
720
+ });
721
+ return {
722
+ items: transformedItems,
723
+ hasClickableItem
724
+ };
725
+ }, [items, activeItemIndex, onListItemSelected]);
726
+ };
727
+
728
+ /**
729
+ * Component display name.
730
+ */
731
+ const COMPONENT_NAME = 'List';
732
+
733
+ /**
734
+ * Component default class name and class prefix.
735
+ */
736
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
737
+
738
+ /**
739
+ * Component default props.
740
+ */
741
+ const DEFAULT_PROPS = {
742
+ tabIndex: -1
743
+ };
744
+
745
+ /* eslint-disable jsx-a11y/no-noninteractive-tabindex */
746
+ /**
747
+ * List component.
748
+ *
749
+ * @param props Component props.
750
+ * @param ref Component ref.
751
+ * @return React element.
752
+ */
753
+ const InternalList = forwardRef((props, ref) => {
754
+ const {
755
+ children,
756
+ className,
757
+ isClickable,
758
+ itemPadding,
759
+ onListItemSelected,
760
+ tabIndex = DEFAULT_PROPS.tabIndex,
761
+ ...forwardedProps
762
+ } = props;
763
+ const listElementRef = useRef(null);
764
+ const {
765
+ items,
766
+ hasClickableItem
767
+ } = useInteractiveList({
768
+ items: children,
769
+ ref: listElementRef,
770
+ onListItemSelected
771
+ });
772
+ const clickable = hasClickableItem || isClickable;
773
+ return /*#__PURE__*/jsx("ul", {
774
+ ...forwardedProps,
775
+ className: classNames(className, handleBasicClasses({
776
+ prefix: CLASSNAME,
777
+ itemPadding: itemPadding ?? (clickable ? Size.big : undefined)
778
+ })),
779
+ tabIndex: tabIndex,
780
+ ref: mergeRefs(ref, listElementRef),
781
+ children: items
782
+ });
783
+ });
784
+ InternalList.displayName = COMPONENT_NAME;
785
+ InternalList.className = CLASSNAME;
786
+ InternalList.defaultProps = DEFAULT_PROPS;
787
+ const List = Object.assign(InternalList, {
788
+ useKeyboardListNavigation
789
+ });
790
+
791
+ export { List as L, ListItem as a, isClickable as i };
792
+ //# sourceMappingURL=f5508d3d.js.map