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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/_internal/{8d67e1e3.d.ts → index.d.ts} +1 -1
  2. package/_internal/index.js +99 -0
  3. package/_internal/index.js.map +1 -0
  4. package/index.d.ts +3000 -66
  5. package/index.js +14561 -64
  6. package/index.js.map +1 -1
  7. package/package.json +3 -3
  8. package/src/components/button/Button.tsx +4 -5
  9. package/src/components/button/ButtonRoot.tsx +1 -3
  10. package/src/components/chip/Chip.tsx +7 -11
  11. package/src/components/date-picker/DatePickerControlled.tsx +1 -1
  12. package/src/components/dialog/Dialog.tsx +1 -1
  13. package/src/components/expansion-panel/ExpansionPanel.test.tsx +2 -2
  14. package/src/components/expansion-panel/ExpansionPanel.tsx +14 -18
  15. package/src/components/flex-box/FlexBox.tsx +1 -1
  16. package/src/components/generic-block/GenericBlock.tsx +6 -7
  17. package/src/components/generic-block/constants.ts +9 -4
  18. package/src/components/grid-column/GridColumn.tsx +1 -2
  19. package/src/components/image-lightbox/internal/ImageSlide.tsx +2 -2
  20. package/src/components/image-lightbox/internal/ImageSlideshow.tsx +4 -8
  21. package/src/components/image-lightbox/useImageLightbox.tsx +3 -4
  22. package/src/components/link/Link.tsx +3 -5
  23. package/src/components/list/ListItem.tsx +2 -3
  24. package/src/components/list/useInteractiveList.tsx +1 -2
  25. package/src/components/mosaic/Mosaic.test.tsx +3 -3
  26. package/src/components/mosaic/Mosaic.tsx +2 -3
  27. package/src/components/navigation/Navigation.tsx +42 -37
  28. package/src/components/navigation/NavigationSection.tsx +76 -79
  29. package/src/components/notification/Notification.tsx +1 -5
  30. package/src/components/popover/usePopoverStyle.tsx +3 -1
  31. package/src/components/popover/useRestoreFocusOnClose.tsx +1 -1
  32. package/src/components/popover-dialog/PopoverDialog.test.tsx +1 -1
  33. package/src/components/post-block/PostBlock.tsx +4 -8
  34. package/src/components/progress-tracker/ProgressTracker.stories.tsx +11 -11
  35. package/src/components/select/Select.stories.tsx +14 -5
  36. package/src/components/select/Select.test.tsx +2 -2
  37. package/src/components/select/Select.tsx +1 -2
  38. package/src/components/select/SelectMultiple.stories.tsx +12 -10
  39. package/src/components/side-navigation/SideNavigationItem.tsx +1 -1
  40. package/src/components/slideshow/Slides.tsx +1 -1
  41. package/src/components/slideshow/SlideshowControls.tsx +1 -1
  42. package/src/components/slideshow/useSlideFocusManagement.tsx +1 -1
  43. package/src/components/switch/Switch.tsx +1 -2
  44. package/src/components/tabs/Tabs.stories.tsx +3 -4
  45. package/src/components/text-field/TextField.test.tsx +4 -4
  46. package/src/components/text-field/TextField.tsx +2 -3
  47. package/src/components/tooltip/Tooltip.test.tsx +2 -2
  48. package/src/components/tooltip/useTooltipOpen.tsx +3 -3
  49. package/src/components/user-block/UserBlock.tsx +7 -9
  50. package/src/hooks/useCallbackOnEscape.ts +1 -1
  51. package/src/hooks/useClickAway.tsx +1 -2
  52. package/src/hooks/useFocusTrap.ts +1 -1
  53. package/src/hooks/useInterval.tsx +1 -4
  54. package/src/hooks/useKeyboardListNavigation.tsx +2 -4
  55. package/src/hooks/useSizeOnWindowResize.ts +14 -10
  56. package/src/hooks/useStopPropagation.ts +1 -2
  57. package/src/hooks/useTransitionVisibility.ts +2 -2
  58. package/src/stories/decorators/withCombinations.tsx +1 -1
  59. package/src/testing/utils/commonTestsSuiteRTL.tsx +2 -2
  60. package/src/utils/{DOM → browser/DOM}/startViewTransition.ts +3 -3
  61. package/src/utils/{focus → browser/focus}/getFirstAndLastFocusable.test.ts +1 -1
  62. package/src/utils/{focus → browser/focus}/getFocusableElements.test.ts +1 -1
  63. package/src/utils/{browserDoesNotSupportHover.test.js → browser/isHoverNotSupported.test.js} +5 -5
  64. package/src/utils/browser/isHoverNotSupported.ts +2 -0
  65. package/src/utils/browser/{getPrefersReducedMotion.ts → isReducedMotion.ts} +1 -1
  66. package/src/utils/className/getFontColorClassName.ts +9 -0
  67. package/src/utils/{className.ts → className/getRootClassName.ts} +1 -21
  68. package/src/utils/className/getTypographyClassName.ts +9 -0
  69. package/src/utils/className/index.ts +4 -0
  70. package/src/utils/collection/castArray.test.ts +15 -0
  71. package/src/utils/collection/castArray.ts +3 -0
  72. package/src/utils/collection/chunk.test.ts +15 -0
  73. package/src/utils/collection/chunk.ts +6 -0
  74. package/src/utils/collection/isEmpty.test.js +20 -0
  75. package/src/utils/collection/isEmpty.ts +4 -0
  76. package/src/utils/collection/last.ts +2 -0
  77. package/src/utils/collection/partitionMulti.test.ts +35 -0
  78. package/src/utils/{partitionMulti.ts → collection/partitionMulti.ts} +13 -12
  79. package/src/utils/collection/pull.test.ts +17 -0
  80. package/src/utils/collection/pull.ts +7 -0
  81. package/src/utils/collection/range.test.js +9 -0
  82. package/src/utils/collection/range.ts +2 -0
  83. package/src/utils/date/getMonthCalendar.ts +3 -4
  84. package/src/utils/flattenChildren.ts +2 -3
  85. package/src/utils/function/memoize.test.ts +36 -0
  86. package/src/utils/function/memoize.ts +13 -0
  87. package/src/utils/makeListenerTowerContext.ts +2 -2
  88. package/src/utils/partitionMulti.test.ts +27 -0
  89. package/src/utils/react/forwardRef.ts +3 -2
  90. package/src/utils/react/forwardRefPolymorphic.ts +1 -2
  91. package/utils/index.d.ts +1 -1
  92. package/utils/index.js +1 -96
  93. package/utils/index.js.map +1 -1
  94. package/_internal/17c3ea1d.js +0 -137
  95. package/_internal/17c3ea1d.js.map +0 -1
  96. package/_internal/1da25128.js +0 -411
  97. package/_internal/1da25128.js.map +0 -1
  98. package/_internal/230173a8.js +0 -13
  99. package/_internal/230173a8.js.map +0 -1
  100. package/_internal/23bdba2d.js +0 -71
  101. package/_internal/23bdba2d.js.map +0 -1
  102. package/_internal/26926e5c.d.ts +0 -36
  103. package/_internal/2a3d237c.js +0 -12
  104. package/_internal/2a3d237c.js.map +0 -1
  105. package/_internal/2c5dbb03.js +0 -26
  106. package/_internal/2c5dbb03.js.map +0 -1
  107. package/_internal/2e2abe51.js +0 -2154
  108. package/_internal/2e2abe51.js.map +0 -1
  109. package/_internal/31490c59.d.ts +0 -167
  110. package/_internal/3181f000.js +0 -14
  111. package/_internal/3181f000.js.map +0 -1
  112. package/_internal/35f100be.d.ts +0 -104
  113. package/_internal/36bd7352.js +0 -219
  114. package/_internal/36bd7352.js.map +0 -1
  115. package/_internal/3a1facc0.js +0 -18
  116. package/_internal/3a1facc0.js.map +0 -1
  117. package/_internal/4c20d932.js +0 -89
  118. package/_internal/4c20d932.js.map +0 -1
  119. package/_internal/4c28d012.js +0 -305
  120. package/_internal/4c28d012.js.map +0 -1
  121. package/_internal/4cd0bf32.js +0 -160
  122. package/_internal/4cd0bf32.js.map +0 -1
  123. package/_internal/4daccdd5.js +0 -25
  124. package/_internal/4daccdd5.js.map +0 -1
  125. package/_internal/524b1d04.js +0 -64
  126. package/_internal/524b1d04.js.map +0 -1
  127. package/_internal/53c94227.js +0 -123
  128. package/_internal/53c94227.js.map +0 -1
  129. package/_internal/54d9ded5.js +0 -418
  130. package/_internal/54d9ded5.js.map +0 -1
  131. package/_internal/56aec41b.js +0 -652
  132. package/_internal/56aec41b.js.map +0 -1
  133. package/_internal/5720caf5.js +0 -124
  134. package/_internal/5720caf5.js.map +0 -1
  135. package/_internal/646f0db6.js +0 -113
  136. package/_internal/646f0db6.js.map +0 -1
  137. package/_internal/6cc8dca8.d.ts +0 -22
  138. package/_internal/7f022f8c.d.ts +0 -34
  139. package/_internal/b8f2948d.js +0 -691
  140. package/_internal/b8f2948d.js.map +0 -1
  141. package/_internal/bc28d510.js +0 -784
  142. package/_internal/bc28d510.js.map +0 -1
  143. package/_internal/c68d24e4.js +0 -145
  144. package/_internal/c68d24e4.js.map +0 -1
  145. package/_internal/c6c99f76.js +0 -105
  146. package/_internal/c6c99f76.js.map +0 -1
  147. package/_internal/cae46566.js +0 -65
  148. package/_internal/cae46566.js.map +0 -1
  149. package/_internal/components/alert-dialog/index.ts-623b1ed3.d.ts +0 -37
  150. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js +0 -148
  151. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js.map +0 -1
  152. package/_internal/components/autocomplete/index.ts-3f8f125c.js +0 -264
  153. package/_internal/components/autocomplete/index.ts-3f8f125c.js.map +0 -1
  154. package/_internal/components/autocomplete/index.ts-8d6b123f.d.ts +0 -201
  155. package/_internal/components/avatar/index.ts-93ee0ea9.js +0 -89
  156. package/_internal/components/avatar/index.ts-93ee0ea9.js.map +0 -1
  157. package/_internal/components/avatar/index.ts-f92852b4.d.ts +0 -43
  158. package/_internal/components/badge/index.ts-2d7700ef.d.ts +0 -30
  159. package/_internal/components/badge/index.ts-6753d67f.js +0 -88
  160. package/_internal/components/badge/index.ts-6753d67f.js.map +0 -1
  161. package/_internal/components/button/index.ts-031307ce.js +0 -51
  162. package/_internal/components/button/index.ts-031307ce.js.map +0 -1
  163. package/_internal/components/button/index.ts-b29e26a4.d.ts +0 -22
  164. package/_internal/components/checkbox/index.ts-a33166d7.js +0 -127
  165. package/_internal/components/checkbox/index.ts-a33166d7.js.map +0 -1
  166. package/_internal/components/checkbox/index.ts-f82358ff.d.ts +0 -38
  167. package/_internal/components/chip/index.ts-4a91f1a7.d.ts +0 -68
  168. package/_internal/components/chip/index.ts-a2b5b771.js +0 -110
  169. package/_internal/components/chip/index.ts-a2b5b771.js.map +0 -1
  170. package/_internal/components/comment-block/index.ts-58fa051a.js +0 -121
  171. package/_internal/components/comment-block/index.ts-58fa051a.js.map +0 -1
  172. package/_internal/components/comment-block/index.ts-8cfa5af0.d.ts +0 -67
  173. package/_internal/components/date-picker/index.ts-145262d5.js +0 -2
  174. package/_internal/components/date-picker/index.ts-145262d5.js.map +0 -1
  175. package/_internal/components/date-picker/index.ts-70a34fa7.d.ts +0 -95
  176. package/_internal/components/dialog/index.ts-ea044db2.js +0 -224
  177. package/_internal/components/dialog/index.ts-ea044db2.js.map +0 -1
  178. package/_internal/components/dialog/index.ts-eca28654.d.ts +0 -55
  179. package/_internal/components/divider/index.ts-4a56db75.js +0 -55
  180. package/_internal/components/divider/index.ts-4a56db75.js.map +0 -1
  181. package/_internal/components/divider/index.ts-b011d8ca.d.ts +0 -18
  182. package/_internal/components/drag-handle/index.ts-0aebf92f.js +0 -54
  183. package/_internal/components/drag-handle/index.ts-0aebf92f.js.map +0 -1
  184. package/_internal/components/drag-handle/index.ts-3ab31dd1.d.ts +0 -18
  185. package/_internal/components/dropdown/index.ts-2a17db51.js +0 -154
  186. package/_internal/components/dropdown/index.ts-2a17db51.js.map +0 -1
  187. package/_internal/components/dropdown/index.ts-b648a15c.d.ts +0 -87
  188. package/_internal/components/expansion-panel/index.ts-69f09f5b.d.ts +0 -38
  189. package/_internal/components/expansion-panel/index.ts-fae3762e.js +0 -143
  190. package/_internal/components/expansion-panel/index.ts-fae3762e.js.map +0 -1
  191. package/_internal/components/flag/index.ts-8dcd685b.js +0 -56
  192. package/_internal/components/flag/index.ts-8dcd685b.js.map +0 -1
  193. package/_internal/components/flag/index.ts-fda89adb.d.ts +0 -23
  194. package/_internal/components/flex-box/index.ts-87f2b58d.d.ts +0 -43
  195. package/_internal/components/flex-box/index.ts-c216e957.js +0 -60
  196. package/_internal/components/flex-box/index.ts-c216e957.js.map +0 -1
  197. package/_internal/components/generic-block/index.ts-999a62a4.js +0 -115
  198. package/_internal/components/generic-block/index.ts-999a62a4.js.map +0 -1
  199. package/_internal/components/generic-block/index.ts-cd3b0e21.d.ts +0 -106
  200. package/_internal/components/grid/index.ts-67e0694f.d.ts +0 -50
  201. package/_internal/components/grid/index.ts-fdf1b306.js +0 -113
  202. package/_internal/components/grid/index.ts-fdf1b306.js.map +0 -1
  203. package/_internal/components/grid-column/index.ts-97c61cbe.js +0 -64
  204. package/_internal/components/grid-column/index.ts-97c61cbe.js.map +0 -1
  205. package/_internal/components/grid-column/index.ts-c89e1c18.d.ts +0 -31
  206. package/_internal/components/heading/index.ts-0179e9a9.js +0 -112
  207. package/_internal/components/heading/index.ts-0179e9a9.js.map +0 -1
  208. package/_internal/components/heading/index.ts-587579e8.d.ts +0 -37
  209. package/_internal/components/icon/index.ts-740ca1de.js +0 -2
  210. package/_internal/components/icon/index.ts-740ca1de.js.map +0 -1
  211. package/_internal/components/icon/index.ts-b3fa5e15.d.ts +0 -34
  212. package/_internal/components/image-block/index.ts-36b3828f.d.ts +0 -49
  213. package/_internal/components/image-block/index.ts-ef5e2e7d.js +0 -111
  214. package/_internal/components/image-block/index.ts-ef5e2e7d.js.map +0 -1
  215. package/_internal/components/image-lightbox/index.ts-137f85a8.js +0 -765
  216. package/_internal/components/image-lightbox/index.ts-137f85a8.js.map +0 -1
  217. package/_internal/components/image-lightbox/index.ts-2cb92d18.d.ts +0 -75
  218. package/_internal/components/inline-list/index.ts-033dd358.js +0 -76
  219. package/_internal/components/inline-list/index.ts-033dd358.js.map +0 -1
  220. package/_internal/components/inline-list/index.ts-e1c8a3ff.d.ts +0 -34
  221. package/_internal/components/input-helper/index.ts-32a9ca90.d.ts +0 -22
  222. package/_internal/components/input-helper/index.ts-ab3a1ef5.js +0 -75
  223. package/_internal/components/input-helper/index.ts-ab3a1ef5.js.map +0 -1
  224. package/_internal/components/input-label/index.ts-86f2ea41.d.ts +0 -24
  225. package/_internal/components/input-label/index.ts-d6ca5569.js +0 -60
  226. package/_internal/components/input-label/index.ts-d6ca5569.js.map +0 -1
  227. package/_internal/components/lightbox/index.ts-5370e8e6.d.ts +0 -36
  228. package/_internal/components/lightbox/index.ts-7a16cdc7.js +0 -149
  229. package/_internal/components/lightbox/index.ts-7a16cdc7.js.map +0 -1
  230. package/_internal/components/link/index.ts-26435006.d.ts +0 -37
  231. package/_internal/components/link/index.ts-d04f4e53.js +0 -120
  232. package/_internal/components/link/index.ts-d04f4e53.js.map +0 -1
  233. package/_internal/components/link-preview/index.ts-e560a274.d.ts +0 -36
  234. package/_internal/components/link-preview/index.ts-fee89f66.js +0 -109
  235. package/_internal/components/link-preview/index.ts-fee89f66.js.map +0 -1
  236. package/_internal/components/list/index.ts-ab57902e.d.ts +0 -118
  237. package/_internal/components/list/index.ts-f3101625.js +0 -86
  238. package/_internal/components/list/index.ts-f3101625.js.map +0 -1
  239. package/_internal/components/message/index.ts-041cf0cb.js +0 -97
  240. package/_internal/components/message/index.ts-041cf0cb.js.map +0 -1
  241. package/_internal/components/message/index.ts-2d38e0ea.d.ts +0 -37
  242. package/_internal/components/mosaic/index.ts-232d5aed.d.ts +0 -23
  243. package/_internal/components/mosaic/index.ts-d2128cd3.js +0 -94
  244. package/_internal/components/mosaic/index.ts-d2128cd3.js.map +0 -1
  245. package/_internal/components/navigation/index.ts-6d8bea53.d.ts +0 -58
  246. package/_internal/components/navigation/index.ts-e8dc0a7f.js +0 -222
  247. package/_internal/components/navigation/index.ts-e8dc0a7f.js.map +0 -1
  248. package/_internal/components/notification/index.ts-235fd340.js +0 -140
  249. package/_internal/components/notification/index.ts-235fd340.js.map +0 -1
  250. package/_internal/components/notification/index.ts-bb3f03f6.d.ts +0 -34
  251. package/_internal/components/popover/index.ts-2f17a9b6.js +0 -3
  252. package/_internal/components/popover/index.ts-2f17a9b6.js.map +0 -1
  253. package/_internal/components/popover/index.ts-e3b4ff19.d.ts +0 -66
  254. package/_internal/components/post-block/index.ts-0acb9bb4.js +0 -101
  255. package/_internal/components/post-block/index.ts-0acb9bb4.js.map +0 -1
  256. package/_internal/components/post-block/index.ts-9b8ff90b.d.ts +0 -41
  257. package/_internal/components/progress/index.ts-2a713859.js +0 -189
  258. package/_internal/components/progress/index.ts-2a713859.js.map +0 -1
  259. package/_internal/components/progress/index.ts-dfdfa5fb.d.ts +0 -60
  260. package/_internal/components/progress-tracker/index.ts-2649f756.js +0 -312
  261. package/_internal/components/progress-tracker/index.ts-2649f756.js.map +0 -1
  262. package/_internal/components/progress-tracker/index.ts-95320f32.d.ts +0 -101
  263. package/_internal/components/radio-button/index.ts-5eaab4cf.d.ts +0 -54
  264. package/_internal/components/radio-button/index.ts-b4dfb2a0.js +0 -150
  265. package/_internal/components/radio-button/index.ts-b4dfb2a0.js.map +0 -1
  266. package/_internal/components/select/index.ts-a65e3507.d.ts +0 -91
  267. package/_internal/components/select/index.ts-e8fad28b.js +0 -257
  268. package/_internal/components/select/index.ts-e8fad28b.js.map +0 -1
  269. package/_internal/components/side-navigation/index.ts-3f5f3785.d.ts +0 -60
  270. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js +0 -184
  271. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js.map +0 -1
  272. package/_internal/components/skeleton/index.ts-a7daefac.d.ts +0 -75
  273. package/_internal/components/skeleton/index.ts-ffc995af.js +0 -179
  274. package/_internal/components/skeleton/index.ts-ffc995af.js.map +0 -1
  275. package/_internal/components/slider/index.ts-24a0d598.d.ts +0 -52
  276. package/_internal/components/slider/index.ts-72aadf4c.js +0 -308
  277. package/_internal/components/slider/index.ts-72aadf4c.js.map +0 -1
  278. package/_internal/components/slideshow/index.ts-c99f2892.js +0 -151
  279. package/_internal/components/slideshow/index.ts-c99f2892.js.map +0 -1
  280. package/_internal/components/slideshow/index.ts-e49462c6.d.ts +0 -25
  281. package/_internal/components/switch/index.ts-207ba52b.d.ts +0 -34
  282. package/_internal/components/switch/index.ts-542e6eaf.js +0 -115
  283. package/_internal/components/switch/index.ts-542e6eaf.js.map +0 -1
  284. package/_internal/components/table/index.ts-905ce390.js +0 -310
  285. package/_internal/components/table/index.ts-905ce390.js.map +0 -1
  286. package/_internal/components/table/index.ts-c4f39b2d.d.ts +0 -108
  287. package/_internal/components/tabs/index.ts-713119f4.js +0 -289
  288. package/_internal/components/tabs/index.ts-713119f4.js.map +0 -1
  289. package/_internal/components/tabs/index.ts-dbfc48d9.d.ts +0 -106
  290. package/_internal/components/text/index.ts-6afbe8cd.js +0 -2
  291. package/_internal/components/text/index.ts-6afbe8cd.js.map +0 -1
  292. package/_internal/components/text/index.ts-8a812048.d.ts +0 -53
  293. package/_internal/components/text-field/index.ts-92e6b3b3.d.ts +0 -77
  294. package/_internal/components/text-field/index.ts-c3be8563.js +0 -341
  295. package/_internal/components/text-field/index.ts-c3be8563.js.map +0 -1
  296. package/_internal/components/thumbnail/index.ts-16d7b403.js +0 -40
  297. package/_internal/components/thumbnail/index.ts-16d7b403.js.map +0 -1
  298. package/_internal/components/thumbnail/index.ts-1b6c0b48.d.ts +0 -8
  299. package/_internal/components/toolbar/index.ts-813b902e.js +0 -63
  300. package/_internal/components/toolbar/index.ts-813b902e.js.map +0 -1
  301. package/_internal/components/toolbar/index.ts-9f5129d1.d.ts +0 -24
  302. package/_internal/components/tooltip/index.ts-905c847c.js +0 -322
  303. package/_internal/components/tooltip/index.ts-905c847c.js.map +0 -1
  304. package/_internal/components/tooltip/index.ts-c6931e9e.d.ts +0 -35
  305. package/_internal/components/uploader/index.ts-31f21c2a.js +0 -132
  306. package/_internal/components/uploader/index.ts-31f21c2a.js.map +0 -1
  307. package/_internal/components/uploader/index.ts-c3ccba98.d.ts +0 -51
  308. package/_internal/components/user-block/index.ts-18c58e19.d.ts +0 -50
  309. package/_internal/components/user-block/index.ts-d43e5f3c.js +0 -136
  310. package/_internal/components/user-block/index.ts-d43e5f3c.js.map +0 -1
  311. package/_internal/dc3e28c8.d.ts +0 -38
  312. package/_internal/f39a1ba4.js +0 -73
  313. package/_internal/f39a1ba4.js.map +0 -1
  314. package/_internal/f3e77e3e.js +0 -22
  315. package/_internal/f3e77e3e.js.map +0 -1
  316. package/_internal/f502ab30.js +0 -78
  317. package/_internal/f502ab30.js.map +0 -1
  318. package/_internal/f52adbae.js +0 -36
  319. package/_internal/f52adbae.js.map +0 -1
  320. package/_internal/f57e1239.js +0 -205
  321. package/_internal/f57e1239.js.map +0 -1
  322. package/_internal/f5ff1aa4.d.ts +0 -47
  323. package/_internal/fb975afe.js +0 -52
  324. package/_internal/fb975afe.js.map +0 -1
  325. package/src/utils/browserDoesNotSupportHover.ts +0 -2
  326. package/src/utils/isInternetExplorer.ts +0 -15
  327. package/src/utils/userHasReducedMotion.ts +0 -7
  328. package/src/utils/utils.test.ts +0 -48
  329. /package/src/utils/{DOM → browser/DOM}/findImage.tsx +0 -0
  330. /package/src/utils/{event.ts → browser/event.ts} +0 -0
  331. /package/src/utils/{focus → browser/focus}/constants.ts +0 -0
  332. /package/src/utils/{focus → browser/focus}/getFirstAndLastFocusable.ts +0 -0
  333. /package/src/utils/{focus → browser/focus}/getFocusableElements.ts +0 -0
  334. /package/src/utils/{isFocusVisible.ts → browser/isFocusVisible.ts} +0 -0
@@ -1,65 +0,0 @@
1
- import { D as DOCUMENT } from './1da25128.js';
2
- import { a as onEscapePressed } from './f57e1239.js';
3
- import { useEffect } from 'react';
4
- import last from 'lodash/last';
5
- import pull from 'lodash/pull';
6
-
7
- /**
8
- * Keep track of listeners, only the last registered listener gets activated at any point (previously registered
9
- * listener are disabled).
10
- * When a listener gets unregistered, the previously registered listener gets enabled again.
11
- */
12
- function makeListenerTowerContext() {
13
- const LISTENERS = [];
14
- return {
15
- register(listener) {
16
- var _last;
17
- // Disable previous listener.
18
- (_last = last(LISTENERS)) === null || _last === void 0 ? void 0 : _last.disable();
19
- // Keep track of current listener.
20
- LISTENERS.push(listener);
21
- // Enable current listener.
22
- listener.enable();
23
- },
24
- unregister(listener) {
25
- var _last2;
26
- // Disable current listener.
27
- listener.disable();
28
- // Remove current listener.
29
- pull(LISTENERS, listener);
30
- // Enable previous listener.
31
- (_last2 = last(LISTENERS)) === null || _last2 === void 0 ? void 0 : _last2.enable();
32
- }
33
- };
34
- }
35
-
36
- const LISTENERS = makeListenerTowerContext();
37
-
38
- /**
39
- * Register a global listener on 'Escape' key pressed.
40
- *
41
- * If multiple listener are registered, only the last one is maintained. When a listener is unregistered, the previous
42
- * one gets activated again.
43
- *
44
- * @param callback Callback
45
- * @param closeOnEscape Disables the hook when false
46
- */
47
- function useCallbackOnEscape(callback) {
48
- let closeOnEscape = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
49
- useEffect(() => {
50
- const rootElement = DOCUMENT === null || DOCUMENT === void 0 ? void 0 : DOCUMENT.body;
51
- if (!closeOnEscape || !callback || !rootElement) {
52
- return undefined;
53
- }
54
- const onKeyDown = onEscapePressed(callback);
55
- const listener = {
56
- enable: () => rootElement.addEventListener('keydown', onKeyDown),
57
- disable: () => rootElement.removeEventListener('keydown', onKeyDown)
58
- };
59
- LISTENERS.register(listener);
60
- return () => LISTENERS.unregister(listener);
61
- }, [callback, closeOnEscape]);
62
- }
63
-
64
- export { makeListenerTowerContext as m, useCallbackOnEscape as u };
65
- //# sourceMappingURL=cae46566.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cae46566.js","sources":["../../src/utils/makeListenerTowerContext.ts","../../src/hooks/useCallbackOnEscape.ts"],"sourcesContent":["import last from 'lodash/last';\nimport pull from 'lodash/pull';\n\nexport type Listener = { enable(): void; disable(): void };\n\n/**\n * Keep track of listeners, only the last registered listener gets activated at any point (previously registered\n * listener are disabled).\n * When a listener gets unregistered, the previously registered listener gets enabled again.\n */\nexport function makeListenerTowerContext() {\n const LISTENERS: Listener[] = [];\n\n return {\n register(listener: Listener) {\n // Disable previous listener.\n last(LISTENERS)?.disable();\n // Keep track of current listener.\n LISTENERS.push(listener);\n // Enable current listener.\n listener.enable();\n },\n unregister(listener: Listener) {\n // Disable current listener.\n listener.disable();\n // Remove current listener.\n pull(LISTENERS, listener);\n // Enable previous listener.\n last(LISTENERS)?.enable();\n },\n };\n}\n","import { DOCUMENT } from '@lumx/react/constants';\nimport { Callback } from '@lumx/react/utils/type';\nimport { onEscapePressed } from '@lumx/react/utils/event';\nimport { useEffect } from 'react';\nimport { Listener, makeListenerTowerContext } from '@lumx/react/utils/makeListenerTowerContext';\n\nconst LISTENERS = makeListenerTowerContext();\n\n/**\n * Register a global listener on 'Escape' key pressed.\n *\n * If multiple listener are registered, only the last one is maintained. When a listener is unregistered, the previous\n * one gets activated again.\n *\n * @param callback Callback\n * @param closeOnEscape Disables the hook when false\n */\nexport function useCallbackOnEscape(callback: Callback | undefined, closeOnEscape = true) {\n useEffect(() => {\n const rootElement = DOCUMENT?.body;\n if (!closeOnEscape || !callback || !rootElement) {\n return undefined;\n }\n const onKeyDown = onEscapePressed(callback);\n\n const listener: Listener = {\n enable: () => rootElement.addEventListener('keydown', onKeyDown),\n disable: () => rootElement.removeEventListener('keydown', onKeyDown),\n };\n\n LISTENERS.register(listener);\n return () => LISTENERS.unregister(listener);\n }, [callback, closeOnEscape]);\n}\n"],"names":["makeListenerTowerContext","LISTENERS","register","listener","_last","last","disable","push","enable","unregister","_last2","pull","useCallbackOnEscape","callback","closeOnEscape","arguments","length","undefined","useEffect","rootElement","DOCUMENT","body","onKeyDown","onEscapePressed","addEventListener","removeEventListener"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;AACA;AACO,SAASA,wBAAwBA,GAAG;EACvC,MAAMC,SAAqB,GAAG,EAAE,CAAA;EAEhC,OAAO;IACHC,QAAQA,CAACC,QAAkB,EAAE;AAAA,MAAA,IAAAC,KAAA,CAAA;AACzB;AACA,MAAA,CAAAA,KAAA,GAAAC,IAAI,CAACJ,SAAS,CAAC,MAAAG,IAAAA,IAAAA,KAAA,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAA,CAAiBE,OAAO,EAAE,CAAA;AAC1B;AACAL,MAAAA,SAAS,CAACM,IAAI,CAACJ,QAAQ,CAAC,CAAA;AACxB;MACAA,QAAQ,CAACK,MAAM,EAAE,CAAA;KACpB;IACDC,UAAUA,CAACN,QAAkB,EAAE;AAAA,MAAA,IAAAO,MAAA,CAAA;AAC3B;MACAP,QAAQ,CAACG,OAAO,EAAE,CAAA;AAClB;AACAK,MAAAA,IAAI,CAACV,SAAS,EAAEE,QAAQ,CAAC,CAAA;AACzB;AACA,MAAA,CAAAO,MAAA,GAAAL,IAAI,CAACJ,SAAS,CAAC,MAAAS,IAAAA,IAAAA,MAAA,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAA,CAAiBF,MAAM,EAAE,CAAA;AAC7B,KAAA;GACH,CAAA;AACL;;ACzBA,MAAMP,SAAS,GAAGD,wBAAwB,EAAE,CAAA;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,mBAAmBA,CAACC,QAA8B,EAAwB;AAAA,EAAA,IAAtBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AACpFG,EAAAA,SAAS,CAAC,MAAM;IACZ,MAAMC,WAAW,GAAGC,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEC,IAAI,CAAA;IAClC,IAAI,CAACP,aAAa,IAAI,CAACD,QAAQ,IAAI,CAACM,WAAW,EAAE;AAC7C,MAAA,OAAOF,SAAS,CAAA;AACpB,KAAA;AACA,IAAA,MAAMK,SAAS,GAAGC,eAAe,CAACV,QAAQ,CAAC,CAAA;AAE3C,IAAA,MAAMV,QAAkB,GAAG;MACvBK,MAAM,EAAEA,MAAMW,WAAW,CAACK,gBAAgB,CAAC,SAAS,EAAEF,SAAS,CAAC;MAChEhB,OAAO,EAAEA,MAAMa,WAAW,CAACM,mBAAmB,CAAC,SAAS,EAAEH,SAAS,CAAA;KACtE,CAAA;AAEDrB,IAAAA,SAAS,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAA;AAC5B,IAAA,OAAO,MAAMF,SAAS,CAACQ,UAAU,CAACN,QAAQ,CAAC,CAAA;AAC/C,GAAC,EAAE,CAACU,QAAQ,EAAEC,aAAa,CAAC,CAAC,CAAA;AACjC;;;;"}
@@ -1,37 +0,0 @@
1
- import { K as Kind, C as Comp } from '../../8d67e1e3.js';
2
- import { a as ButtonProps } from '../../26926e5c.js';
3
- import { DialogProps } from '../dialog/index.ts-eca28654.js';
4
- import 'react';
5
- import '../../7f022f8c.js';
6
-
7
- interface AlertDialogProps extends Omit<DialogProps, 'header' | 'footer'> {
8
- /** Message variant. */
9
- kind?: Kind;
10
- /** Dialog title. */
11
- title?: string;
12
- /** Props forwarded to the confirm button */
13
- confirmProps: ButtonProps & {
14
- onClick(): void;
15
- label: string;
16
- };
17
- /**
18
- * Props forwarded to the cancel button.
19
- * Will not render a cancel button if undefined.
20
- */
21
- cancelProps?: ButtonProps & {
22
- onClick(): void;
23
- label: string;
24
- };
25
- }
26
- /**
27
- * AlertDialog component.
28
- *
29
- * An alert dialog is a modal dialog that interrupts the user's workflow to
30
- * communicate an important message and acquire a response.
31
- *
32
- * It should not have a complex content.
33
- * Children of this component should only be strings, paragraphs or links.
34
- */
35
- declare const AlertDialog: Comp<AlertDialogProps, HTMLDivElement>;
36
-
37
- export { AlertDialog, type AlertDialogProps };
@@ -1,148 +0,0 @@
1
- import { K as Kind, C as ColorPalette, h as getRootClassName, S as Size, i as forwardRef, j as _objectWithoutProperties, _ as _extends, k as _objectSpread2, g as classNames, E as Emphasis } from '../../1da25128.js';
2
- import React__default from 'react';
3
- import { u as useId } from '../../3a1facc0.js';
4
- import { e as mdiAlert, f as mdiInformation, g as mdiCheckCircle, h as mdiAlertCircle, I as Icon } from '../../c6c99f76.js';
5
- import { Dialog } from '../dialog/index.ts-ea044db2.js';
6
- import { h as handleBasicClasses } from '../../f57e1239.js';
7
- import { Toolbar } from '../toolbar/index.ts-813b902e.js';
8
- import { a as Button } from '../../4c20d932.js';
9
-
10
- const _excluded = ["id", "title", "className", "cancelProps", "confirmProps", "kind", "size", "dialogProps", "children"],
11
- _excluded2 = ["label", "onClick"],
12
- _excluded3 = ["label", "onClick"];
13
- /**
14
- * Associative map from message kind to color and icon.
15
- */
16
- const CONFIG = {
17
- [Kind.error]: {
18
- color: ColorPalette.red,
19
- icon: mdiAlert
20
- },
21
- [Kind.info]: {
22
- color: ColorPalette.blue,
23
- icon: mdiInformation
24
- },
25
- [Kind.success]: {
26
- color: ColorPalette.green,
27
- icon: mdiCheckCircle
28
- },
29
- [Kind.warning]: {
30
- color: ColorPalette.yellow,
31
- icon: mdiAlertCircle
32
- }
33
- };
34
-
35
- /**
36
- * Component display name.
37
- */
38
- const COMPONENT_NAME = 'AlertDialog';
39
-
40
- /**
41
- * Component default class name and class prefix.
42
- */
43
- const CLASSNAME = getRootClassName(COMPONENT_NAME);
44
-
45
- /**
46
- * Component default props.
47
- */
48
- const DEFAULT_PROPS = {
49
- size: Size.tiny,
50
- kind: Kind.info
51
- };
52
-
53
- /**
54
- * AlertDialog component.
55
- *
56
- * An alert dialog is a modal dialog that interrupts the user's workflow to
57
- * communicate an important message and acquire a response.
58
- *
59
- * It should not have a complex content.
60
- * Children of this component should only be strings, paragraphs or links.
61
- */
62
- const AlertDialog = forwardRef((props, ref) => {
63
- const {
64
- id,
65
- title,
66
- className,
67
- cancelProps,
68
- confirmProps,
69
- kind,
70
- size,
71
- dialogProps,
72
- children
73
- } = props,
74
- forwardedProps = _objectWithoutProperties(props, _excluded);
75
- const cancelButtonRef = React__default.useRef(null);
76
- const confirmationButtonRef = React__default.useRef(null);
77
- const {
78
- color,
79
- icon
80
- } = CONFIG[kind] || {};
81
-
82
- // Define a unique ID to target title and description for aria attributes.
83
- const generatedId = useId();
84
- const uniqueId = id || generatedId;
85
- const titleId = `${uniqueId}-title`;
86
- const descriptionId = `${uniqueId}-description`;
87
-
88
- // If content is a string, set in a paragraph.
89
- const DescriptionElement = typeof children === 'string' ? 'p' : 'div';
90
- const {
91
- label: confirmLabel,
92
- onClick: confirmOnClick
93
- } = confirmProps,
94
- forwardedConfirmProps = _objectWithoutProperties(confirmProps, _excluded2);
95
- const _ref = cancelProps || {},
96
- {
97
- label: cancelLabel,
98
- onClick: cancelOnClick
99
- } = _ref,
100
- forwardedCancelProps = _objectWithoutProperties(_ref, _excluded3);
101
- return /*#__PURE__*/React__default.createElement(Dialog, _extends({
102
- ref: ref,
103
- focusElement: cancelProps ? cancelButtonRef : confirmationButtonRef,
104
- size: size,
105
- dialogProps: _objectSpread2({
106
- id: uniqueId,
107
- role: 'alertdialog',
108
- 'aria-labelledby': titleId,
109
- 'aria-describedby': descriptionId
110
- }, dialogProps),
111
- className: classNames(className, handleBasicClasses({
112
- kind,
113
- prefix: CLASSNAME
114
- }))
115
- }, forwardedProps), /*#__PURE__*/React__default.createElement("header", null, /*#__PURE__*/React__default.createElement(Toolbar, {
116
- className: "lumx-spacing-margin-horizontal",
117
- before: /*#__PURE__*/React__default.createElement(Icon, {
118
- icon: icon,
119
- size: Size.s,
120
- color: color
121
- }),
122
- label: /*#__PURE__*/React__default.createElement("h2", {
123
- id: titleId,
124
- className: "lumx-typography-title"
125
- }, title)
126
- })), children && /*#__PURE__*/React__default.createElement(DescriptionElement, {
127
- id: descriptionId,
128
- className: "lumx-typography-body2 lumx-spacing-padding-vertical-big lumx-spacing-padding-horizontal-huge"
129
- }, children), /*#__PURE__*/React__default.createElement("footer", null, /*#__PURE__*/React__default.createElement(Toolbar, {
130
- className: "lumx-spacing-margin-horizontal",
131
- after: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, cancelProps && /*#__PURE__*/React__default.createElement(Button, _extends({}, forwardedCancelProps, {
132
- ref: cancelButtonRef,
133
- emphasis: Emphasis.medium,
134
- onClick: cancelOnClick
135
- }), cancelLabel), /*#__PURE__*/React__default.createElement(Button, _extends({}, forwardedConfirmProps, {
136
- ref: confirmationButtonRef,
137
- color: color,
138
- className: "lumx-spacing-margin-left-regular",
139
- onClick: confirmOnClick
140
- }), confirmLabel))
141
- })));
142
- });
143
- AlertDialog.displayName = COMPONENT_NAME;
144
- AlertDialog.className = CLASSNAME;
145
- AlertDialog.defaultProps = DEFAULT_PROPS;
146
-
147
- export { AlertDialog };
148
- //# sourceMappingURL=index.ts-f83bd6ef.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.ts-f83bd6ef.js","sources":["../../../../src/components/alert-dialog/AlertDialog.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n DialogProps,\n Dialog,\n Button,\n Emphasis,\n ColorPalette,\n Icon,\n Size,\n Kind,\n Toolbar,\n ButtonProps,\n} from '@lumx/react';\nimport { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nexport interface AlertDialogProps extends Omit<DialogProps, 'header' | 'footer'> {\n /** Message variant. */\n kind?: Kind;\n /** Dialog title. */\n title?: string;\n /** Props forwarded to the confirm button */\n confirmProps: ButtonProps & {\n onClick(): void;\n label: string;\n };\n /**\n * Props forwarded to the cancel button.\n * Will not render a cancel button if undefined.\n */\n cancelProps?: ButtonProps & {\n onClick(): void;\n label: string;\n };\n}\n\n/**\n * Associative map from message kind to color and icon.\n */\nconst CONFIG = {\n [Kind.error]: { color: ColorPalette.red, icon: mdiAlert },\n [Kind.info]: { color: ColorPalette.blue, icon: mdiInformation },\n [Kind.success]: { color: ColorPalette.green, icon: mdiCheckCircle },\n [Kind.warning]: { color: ColorPalette.yellow, icon: mdiAlertCircle },\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'AlertDialog';\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<DialogProps> = {\n size: Size.tiny,\n kind: Kind.info,\n};\n\n/**\n * AlertDialog component.\n *\n * An alert dialog is a modal dialog that interrupts the user's workflow to\n * communicate an important message and acquire a response.\n *\n * It should not have a complex content.\n * Children of this component should only be strings, paragraphs or links.\n */\nexport const AlertDialog = forwardRef<AlertDialogProps, HTMLDivElement>((props, ref) => {\n const { id, title, className, cancelProps, confirmProps, kind, size, dialogProps, children, ...forwardedProps } =\n props;\n\n const cancelButtonRef = React.useRef(null);\n const confirmationButtonRef = React.useRef(null);\n const { color, icon } = CONFIG[kind as Kind] || {};\n\n // Define a unique ID to target title and description for aria attributes.\n const generatedId = useId();\n const uniqueId = id || generatedId;\n const titleId = `${uniqueId}-title`;\n const descriptionId = `${uniqueId}-description`;\n\n // If content is a string, set in a paragraph.\n const DescriptionElement = typeof children === 'string' ? 'p' : 'div';\n\n const { label: confirmLabel, onClick: confirmOnClick, ...forwardedConfirmProps } = confirmProps;\n const { label: cancelLabel, onClick: cancelOnClick, ...forwardedCancelProps } = cancelProps || {};\n\n return (\n <Dialog\n ref={ref}\n focusElement={cancelProps ? cancelButtonRef : confirmationButtonRef}\n size={size}\n dialogProps={{\n id: uniqueId,\n role: 'alertdialog',\n 'aria-labelledby': titleId,\n 'aria-describedby': descriptionId,\n ...dialogProps,\n }}\n className={classNames(\n className,\n handleBasicClasses({\n kind,\n prefix: CLASSNAME,\n }),\n )}\n {...forwardedProps}\n >\n <header>\n <Toolbar\n className=\"lumx-spacing-margin-horizontal\"\n before={<Icon icon={icon} size={Size.s} color={color} />}\n label={\n <h2 id={titleId} className=\"lumx-typography-title\">\n {title}\n </h2>\n }\n />\n </header>\n\n {children && (\n <DescriptionElement\n id={descriptionId}\n className=\"lumx-typography-body2 lumx-spacing-padding-vertical-big lumx-spacing-padding-horizontal-huge\"\n >\n {children}\n </DescriptionElement>\n )}\n\n <footer>\n <Toolbar\n className=\"lumx-spacing-margin-horizontal\"\n after={\n <>\n {cancelProps && (\n <Button\n {...forwardedCancelProps}\n ref={cancelButtonRef}\n emphasis={Emphasis.medium}\n onClick={cancelOnClick}\n >\n {cancelLabel}\n </Button>\n )}\n <Button\n {...forwardedConfirmProps}\n ref={confirmationButtonRef}\n color={color}\n className=\"lumx-spacing-margin-left-regular\"\n onClick={confirmOnClick}\n >\n {confirmLabel}\n </Button>\n </>\n }\n />\n </footer>\n </Dialog>\n );\n});\n\nAlertDialog.displayName = COMPONENT_NAME;\nAlertDialog.className = CLASSNAME;\nAlertDialog.defaultProps = DEFAULT_PROPS;\n"],"names":["CONFIG","Kind","error","color","ColorPalette","red","icon","mdiAlert","info","blue","mdiInformation","success","green","mdiCheckCircle","warning","yellow","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","tiny","kind","AlertDialog","forwardRef","props","ref","id","title","className","cancelProps","confirmProps","dialogProps","children","forwardedProps","_objectWithoutProperties","_excluded","cancelButtonRef","React","useRef","confirmationButtonRef","generatedId","useId","uniqueId","titleId","descriptionId","DescriptionElement","label","confirmLabel","onClick","confirmOnClick","forwardedConfirmProps","_excluded2","_ref","cancelLabel","cancelOnClick","forwardedCancelProps","_excluded3","createElement","Dialog","_extends","focusElement","_objectSpread","role","classNames","handleBasicClasses","prefix","Toolbar","before","Icon","s","after","Fragment","Button","emphasis","Emphasis","medium","displayName","defaultProps"],"mappings":"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"}
@@ -1,264 +0,0 @@
1
- import { h as getRootClassName, i as forwardRef, j as _objectWithoutProperties, _ as _extends, g as classNames, S as Size } from '../../1da25128.js';
2
- import React__default, { useRef } from 'react';
3
- import { u as useFocus } from '../../54d9ded5.js';
4
- import { m as mergeRefs } from '../../f52adbae.js';
5
- import { u as useTheme } from '../../3181f000.js';
6
- import { h as handleBasicClasses } from '../../f57e1239.js';
7
- import { TextField } from '../text-field/index.ts-c3be8563.js';
8
- import { Dropdown } from '../dropdown/index.ts-2a17db51.js';
9
- import { C as Chip } from '../../c68d24e4.js';
10
- import { I as Icon, i as mdiClose } from '../../c6c99f76.js';
11
-
12
- const _excluded$1 = ["anchorToInput", "children", "chips", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "disabled", "error", "fitToAnchorWidth", "hasError", "helper", "icon", "inputRef", "clearButtonProps", "isDisabled", "isRequired", "isOpen", "isValid", "label", "name", "offset", "onBlur", "onChange", "onClose", "onFocus", "onInfiniteScroll", "placeholder", "placement", "shouldFocusOnClose", "theme", "value", "textFieldProps", "focusAnchorOnClose"];
13
-
14
- /**
15
- * Defines the props of the component.
16
- */
17
-
18
- /**
19
- * Component display name.
20
- */
21
- const COMPONENT_NAME$1 = 'Autocomplete';
22
-
23
- /**
24
- * Component default class name and class prefix.
25
- */
26
- const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
27
-
28
- /**
29
- * Component default props.
30
- */
31
- const DEFAULT_PROPS$1 = {
32
- anchorToInput: false,
33
- closeOnClick: false,
34
- closeOnClickAway: true,
35
- closeOnEscape: true,
36
- shouldFocusOnClose: false
37
- };
38
-
39
- /**
40
- * Autocomplete component.
41
- *
42
- * @param props Component props.
43
- * @param ref Component ref.
44
- * @return React element.
45
- */
46
- const Autocomplete = forwardRef((props, ref) => {
47
- const defaultTheme = useTheme();
48
- const {
49
- anchorToInput,
50
- children,
51
- chips,
52
- className,
53
- closeOnClick,
54
- closeOnClickAway,
55
- closeOnEscape,
56
- disabled,
57
- error,
58
- fitToAnchorWidth,
59
- hasError,
60
- helper,
61
- icon,
62
- inputRef,
63
- clearButtonProps,
64
- isDisabled = disabled,
65
- isRequired,
66
- isOpen,
67
- isValid,
68
- label,
69
- name,
70
- offset,
71
- onBlur,
72
- onChange,
73
- onClose,
74
- onFocus,
75
- onInfiniteScroll,
76
- placeholder,
77
- placement,
78
- shouldFocusOnClose,
79
- theme = defaultTheme,
80
- value,
81
- textFieldProps = {},
82
- focusAnchorOnClose
83
- } = props,
84
- forwardedProps = _objectWithoutProperties(props, _excluded$1);
85
- const inputAnchorRef = useRef(null);
86
- const textFieldRef = useRef(null);
87
- useFocus(inputAnchorRef.current, !isOpen && shouldFocusOnClose);
88
- return /*#__PURE__*/React__default.createElement("div", _extends({
89
- ref: ref
90
- }, forwardedProps, {
91
- className: classNames(className, handleBasicClasses({
92
- prefix: CLASSNAME$1
93
- }))
94
- }), /*#__PURE__*/React__default.createElement(TextField, _extends({}, textFieldProps, {
95
- chips: chips,
96
- error: error,
97
- hasError: hasError,
98
- helper: helper,
99
- icon: icon,
100
- inputRef: mergeRefs(inputAnchorRef, inputRef),
101
- clearButtonProps: clearButtonProps,
102
- isDisabled: isDisabled,
103
- isRequired: isRequired,
104
- isValid: isValid,
105
- label: label,
106
- name: name,
107
- onBlur: onBlur,
108
- onChange: onChange,
109
- onFocus: onFocus,
110
- placeholder: placeholder,
111
- textFieldRef: textFieldRef,
112
- theme: theme,
113
- value: value
114
- })), /*#__PURE__*/React__default.createElement(Dropdown, {
115
- anchorRef: anchorToInput ? inputAnchorRef : textFieldRef,
116
- closeOnClick: closeOnClick,
117
- closeOnClickAway: closeOnClickAway,
118
- closeOnEscape: closeOnEscape,
119
- focusAnchorOnClose: focusAnchorOnClose,
120
- fitToAnchorWidth: fitToAnchorWidth,
121
- isOpen: isOpen,
122
- offset: offset,
123
- onClose: onClose,
124
- onInfiniteScroll: onInfiniteScroll,
125
- placement: placement,
126
- shouldFocusOnOpen: false,
127
- theme: theme
128
- }, children));
129
- });
130
- Autocomplete.displayName = COMPONENT_NAME$1;
131
- Autocomplete.className = CLASSNAME$1;
132
- Autocomplete.defaultProps = DEFAULT_PROPS$1;
133
-
134
- const _excluded = ["anchorToInput", "children", "chipsAlignment", "className", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "hasError", "helper", "icon", "inputRef", "clearButtonProps", "isDisabled", "isRequired", "isOpen", "isValid", "label", "name", "offset", "onBlur", "onChange", "onClear", "onClose", "onFocus", "onInfiniteScroll", "onKeyDown", "placeholder", "placement", "selectedChipRender", "shouldFocusOnClose", "theme", "type", "value", "values"];
135
-
136
- /**
137
- * Defines the props of the component.
138
- */
139
-
140
- /**
141
- * Component display name.
142
- */
143
- const COMPONENT_NAME = 'AutocompleteMultiple';
144
-
145
- /**
146
- * Component default class name and class prefix.
147
- */
148
- const CLASSNAME = getRootClassName(COMPONENT_NAME);
149
-
150
- /**
151
- * Component default props.
152
- */
153
- const DEFAULT_PROPS = {
154
- closeOnClickAway: true,
155
- closeOnEscape: true,
156
- selectedChipRender(choice, index, onClear, isDisabled) {
157
- const onClick = event => onClear && onClear(event, choice);
158
- return /*#__PURE__*/React__default.createElement(Chip, {
159
- key: index,
160
- after: onClear && /*#__PURE__*/React__default.createElement(Icon, {
161
- icon: mdiClose,
162
- size: Size.xxs
163
- }),
164
- isDisabled: isDisabled,
165
- size: Size.s,
166
- onAfterClick: onClick,
167
- onClick: onClick
168
- }, choice);
169
- },
170
- values: []
171
- };
172
-
173
- /**
174
- * AutocompleteMultiple component.
175
- *
176
- * @param props Component props.
177
- * @param ref Component ref.
178
- * @return React element.
179
- */
180
- const AutocompleteMultiple = forwardRef((props, ref) => {
181
- const defaultTheme = useTheme();
182
- const {
183
- anchorToInput,
184
- children,
185
- // `chipsAlignment` needs to be here to remove it from `forwardedProps`.
186
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
187
- chipsAlignment,
188
- className,
189
- closeOnClickAway,
190
- closeOnEscape,
191
- fitToAnchorWidth,
192
- hasError,
193
- helper,
194
- icon,
195
- inputRef,
196
- clearButtonProps,
197
- isDisabled,
198
- isRequired,
199
- isOpen,
200
- isValid,
201
- label,
202
- name,
203
- offset,
204
- onBlur,
205
- onChange,
206
- onClear,
207
- onClose,
208
- onFocus,
209
- onInfiniteScroll,
210
- onKeyDown,
211
- placeholder,
212
- placement,
213
- selectedChipRender,
214
- shouldFocusOnClose,
215
- theme = defaultTheme,
216
- type,
217
- value,
218
- values
219
- } = props,
220
- forwardedProps = _objectWithoutProperties(props, _excluded);
221
- return /*#__PURE__*/React__default.createElement(Autocomplete, _extends({
222
- ref: ref
223
- }, forwardedProps, {
224
- anchorToInput: anchorToInput,
225
- className: classNames(className, handleBasicClasses({
226
- prefix: CLASSNAME
227
- })),
228
- name: name,
229
- value: value,
230
- onChange: onChange,
231
- onKeyDown: onKeyDown,
232
- onBlur: onBlur,
233
- shouldFocusOnClose: shouldFocusOnClose,
234
- onFocus: onFocus,
235
- hasError: hasError,
236
- helper: helper,
237
- icon: icon,
238
- inputRef: inputRef,
239
- chips: values && values.map((chip, index) => selectedChipRender(chip, index, onClear)),
240
- isDisabled: isDisabled,
241
- isRequired: isRequired,
242
- clearButtonProps: clearButtonProps,
243
- isValid: isValid,
244
- label: label,
245
- placeholder: placeholder,
246
- theme: theme,
247
- type: type,
248
- isOpen: isOpen,
249
- closeOnClick: false,
250
- closeOnClickAway: closeOnClickAway,
251
- closeOnEscape: closeOnEscape,
252
- onClose: onClose,
253
- offset: offset,
254
- placement: placement,
255
- fitToAnchorWidth: fitToAnchorWidth,
256
- onInfiniteScroll: onInfiniteScroll
257
- }), children);
258
- });
259
- AutocompleteMultiple.displayName = COMPONENT_NAME;
260
- AutocompleteMultiple.className = CLASSNAME;
261
- AutocompleteMultiple.defaultProps = DEFAULT_PROPS;
262
-
263
- export { Autocomplete, AutocompleteMultiple };
264
- //# sourceMappingURL=index.ts-3f8f125c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.ts-3f8f125c.js","sources":["../../../../src/components/autocomplete/Autocomplete.tsx","../../../../src/components/autocomplete/AutocompleteMultiple.tsx"],"sourcesContent":["import React, { ReactNode, SyntheticEvent, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Dropdown, DropdownProps, IconButtonProps, Offset, Placement, TextField, TextFieldProps } from '@lumx/react';\n\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { useFocus } from '@lumx/react/hooks/useFocus';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface AutocompleteProps extends GenericProps, HasTheme {\n /**\n * Whether the suggestions list should display anchored to the input or to the wrapper.\n * @see {@link DropdownProps#anchorToInput}\n */\n anchorToInput?: boolean;\n /**\n * Props to pass to the clear button (minus those already set by the TextField props).\n * If not specified, the button won't be displayed.\n * @see {@link TextFieldProps#clearButtonProps}\n */\n clearButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /**\n * Reference to the <input> or <textarea> element.\n * @see {@link TextFieldProps#inputRef}\n */\n inputRef?: TextFieldProps['inputRef'];\n /**\n * The offset that will be applied to the Dropdown position.\n * @see {@link DropdownProps#offset}\n */\n offset?: Offset;\n /**\n * The preferred Dropdown location against the anchor element.\n * @see {@link DropdownProps#placement}\n */\n placement?: Placement;\n /**\n * Manage dropdown width:\n * - `maxWidth`: dropdown not bigger than anchor\n * - `minWidth` or `true`: dropdown not smaller than anchor\n * - `width`: dropdown equal to the anchor.\n * @see {@link DropdownProps#fitToAnchorWidth}\n */\n fitToAnchorWidth?: DropdownProps['fitToAnchorWidth'];\n /**\n * The error related to the component.\n * @see {@link TextFieldProps#error}\n */\n error?: string | ReactNode;\n /**\n * Whether the text field is displayed with error style or not.\n * @see {@link TextFieldProps#hasError}\n */\n hasError?: boolean;\n /**\n * Whether the text box should be focused upon closing the suggestions or not.\n */\n shouldFocusOnClose?: boolean;\n /**\n * The helper message of the text field.\n * @see {@link TextFieldProps#helper}\n */\n helper?: string;\n /**\n * The icon of the text field (SVG path).\n * @see {@link TextFieldProps#icon}\n */\n icon?: string;\n /**\n * Whether the component is disabled or not.\n * @see {@link TextFieldProps#isDisabled}\n */\n isDisabled?: boolean;\n /**\n * Whether the component is required or not.\n * @see {@link TextFieldProps#isRequired}\n */\n isRequired?: boolean;\n /**\n * Whether the text field is displayed with valid style or not.\n * @see {@link TextFieldProps#isValid}\n */\n isValid?: boolean;\n /**\n * The label of the text field displayed in a label tag.\n * @see {@link TextFieldProps#label}\n */\n label?: string;\n /**\n * The placeholder message of the text field.\n * @see {@link TextFieldProps#placeholder}\n */\n placeholder?: string;\n /** List of suggestions to display during autocomplete. */\n children: React.ReactNode;\n /**\n * The list of chips to be displayed before the text field input.\n */\n chips?: React.ReactNode;\n /**\n * The value of the text field.\n * @see {@link TextFieldProps#value}\n */\n value: string;\n /**\n * Whether the suggestions from the autocomplete should be displayed or not.\n * @see {@link DropdownProps#isOpen}\n */\n isOpen: boolean;\n /**\n * The native input name property.\n * @see {@link TextFieldProps#name}\n */\n name?: string;\n /**\n * Whether a click in the Autocomplete dropdown would close it or not.\n * @see {@link DropdownProps#closeOnClick}\n */\n closeOnClick?: boolean;\n /**\n * Whether a click anywhere out of the Autocomplete would close it or not.\n * @see {@link DropdownProps#closeOnClickAway}\n */\n closeOnClickAway?: boolean;\n /**\n * Whether an escape key press would close the Autocomplete or not.\n * @see {@link DropdownProps#closeOnEscape}\n */\n closeOnEscape?: boolean;\n /**\n * Whether the focus should go back on the anchor when dropdown closes and focus is within.\n * @see {@link DropdownProps#focusAnchorOnClose}\n */\n focusAnchorOnClose?: DropdownProps['focusAnchorOnClose'];\n /**\n * The function called on blur.\n * @see {@link TextFieldProps#onBlur}\n */\n onBlur?(event: React.FocusEvent): void;\n /**\n * On change callback.\n * @see {@link TextFieldProps#onChange}\n */\n onChange(value: string, name?: string, event?: SyntheticEvent): void;\n /**\n * The function called on close.\n * @see {@link DropdownProps#onClose}\n */\n onClose?(): void;\n /**\n * The function called on focus.\n * @see {@link TextFieldProps#onFocus}\n */\n onFocus?(event: React.FocusEvent): void;\n /**\n * The function called when the bottom of the dropdown is reached.\n * @see {@link DropdownProps#onInfiniteScroll}\n */\n onInfiniteScroll?(): void;\n /**\n * Props forwarded to the underlying TextField component.\n * Only the props not managed by the Autocomplete can be set.\n * @see {@link TextFieldProps}\n */\n textFieldProps?: Partial<TextFieldProps>;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Autocomplete';\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<AutocompleteProps> = {\n anchorToInput: false,\n closeOnClick: false,\n closeOnClickAway: true,\n closeOnEscape: true,\n shouldFocusOnClose: false,\n};\n\n/**\n * Autocomplete component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Autocomplete = forwardRef<AutocompleteProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme();\n const {\n anchorToInput,\n children,\n chips,\n className,\n closeOnClick,\n closeOnClickAway,\n closeOnEscape,\n disabled,\n error,\n fitToAnchorWidth,\n hasError,\n helper,\n icon,\n inputRef,\n clearButtonProps,\n isDisabled = disabled,\n isRequired,\n isOpen,\n isValid,\n label,\n name,\n offset,\n onBlur,\n onChange,\n onClose,\n onFocus,\n onInfiniteScroll,\n placeholder,\n placement,\n shouldFocusOnClose,\n theme = defaultTheme,\n value,\n textFieldProps = {},\n focusAnchorOnClose,\n ...forwardedProps\n } = props;\n const inputAnchorRef = useRef<HTMLElement>(null);\n const textFieldRef = useRef(null);\n useFocus(inputAnchorRef.current, !isOpen && shouldFocusOnClose);\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n }),\n )}\n >\n <TextField\n {...textFieldProps}\n chips={chips}\n error={error}\n hasError={hasError}\n helper={helper}\n icon={icon}\n inputRef={mergeRefs(inputAnchorRef as React.RefObject<HTMLInputElement>, inputRef)}\n clearButtonProps={clearButtonProps}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isValid={isValid}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n placeholder={placeholder}\n textFieldRef={textFieldRef}\n theme={theme}\n value={value}\n />\n <Dropdown\n anchorRef={anchorToInput ? inputAnchorRef : textFieldRef}\n closeOnClick={closeOnClick}\n closeOnClickAway={closeOnClickAway}\n closeOnEscape={closeOnEscape}\n focusAnchorOnClose={focusAnchorOnClose}\n fitToAnchorWidth={fitToAnchorWidth}\n isOpen={isOpen}\n offset={offset}\n onClose={onClose}\n onInfiniteScroll={onInfiniteScroll}\n placement={placement}\n shouldFocusOnOpen={false}\n theme={theme}\n >\n {children}\n </Dropdown>\n </div>\n );\n});\nAutocomplete.displayName = COMPONENT_NAME;\nAutocomplete.className = CLASSNAME;\nAutocomplete.defaultProps = DEFAULT_PROPS;\n","import React, { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiClose } from '@lumx/icons';\n\nimport { Autocomplete, AutocompleteProps, Chip, HorizontalAlignment, Icon, Size } from '@lumx/react';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\n\n/**\n * Defines the props of the component.\n */\nexport interface AutocompleteMultipleProps extends AutocompleteProps {\n /** Selected values. */\n values: any[];\n /** Alignment of the chips in the autocomplete. */\n chipsAlignment?: HorizontalAlignment;\n /** Selected value render function. Default: Renders the value inside of a Chip. */\n selectedChipRender(\n choice: any,\n index: number,\n onClear?: (event: React.MouseEvent, choice: any) => void,\n isDisabled?: boolean,\n ): ReactNode | string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'AutocompleteMultiple';\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<AutocompleteMultipleProps> = {\n closeOnClickAway: true,\n closeOnEscape: true,\n selectedChipRender(choice, index, onClear, isDisabled) {\n const onClick = (event: React.MouseEvent) => onClear && onClear(event, choice);\n return (\n <Chip\n key={index}\n after={onClear && <Icon icon={mdiClose} size={Size.xxs} />}\n isDisabled={isDisabled}\n size={Size.s}\n onAfterClick={onClick}\n onClick={onClick}\n >\n {choice}\n </Chip>\n );\n },\n values: [],\n};\n\n/**\n * AutocompleteMultiple component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const AutocompleteMultiple = forwardRef<AutocompleteMultipleProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme();\n const {\n anchorToInput,\n children,\n // `chipsAlignment` needs to be here to remove it from `forwardedProps`.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n chipsAlignment,\n className,\n closeOnClickAway,\n closeOnEscape,\n fitToAnchorWidth,\n hasError,\n helper,\n icon,\n inputRef,\n clearButtonProps,\n isDisabled,\n isRequired,\n isOpen,\n isValid,\n label,\n name,\n offset,\n onBlur,\n onChange,\n onClear,\n onClose,\n onFocus,\n onInfiniteScroll,\n onKeyDown,\n placeholder,\n placement,\n selectedChipRender,\n shouldFocusOnClose,\n theme = defaultTheme,\n type,\n value,\n values,\n ...forwardedProps\n } = props;\n\n return (\n <Autocomplete\n ref={ref}\n {...forwardedProps}\n anchorToInput={anchorToInput}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n }),\n )}\n name={name}\n value={value}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n shouldFocusOnClose={shouldFocusOnClose}\n onFocus={onFocus}\n hasError={hasError}\n helper={helper}\n icon={icon}\n inputRef={inputRef}\n chips={values && values.map((chip: any, index: number) => selectedChipRender(chip, index, onClear))}\n isDisabled={isDisabled}\n isRequired={isRequired}\n clearButtonProps={clearButtonProps}\n isValid={isValid}\n label={label}\n placeholder={placeholder}\n theme={theme}\n type={type}\n isOpen={isOpen}\n closeOnClick={false}\n closeOnClickAway={closeOnClickAway}\n closeOnEscape={closeOnEscape}\n onClose={onClose}\n offset={offset}\n placement={placement}\n fitToAnchorWidth={fitToAnchorWidth}\n onInfiniteScroll={onInfiniteScroll}\n >\n {children}\n </Autocomplete>\n );\n});\nAutocompleteMultiple.displayName = COMPONENT_NAME;\nAutocompleteMultiple.className = CLASSNAME;\nAutocompleteMultiple.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","anchorToInput","closeOnClick","closeOnClickAway","closeOnEscape","shouldFocusOnClose","Autocomplete","forwardRef","props","ref","defaultTheme","useTheme","children","chips","className","disabled","error","fitToAnchorWidth","hasError","helper","icon","inputRef","clearButtonProps","isDisabled","isRequired","isOpen","isValid","label","name","offset","onBlur","onChange","onClose","onFocus","onInfiniteScroll","placeholder","placement","theme","value","textFieldProps","focusAnchorOnClose","forwardedProps","_objectWithoutProperties","_excluded","inputAnchorRef","useRef","textFieldRef","useFocus","current","React","createElement","_extends","classNames","handleBasicClasses","prefix","TextField","mergeRefs","Dropdown","anchorRef","shouldFocusOnOpen","displayName","defaultProps","selectedChipRender","choice","index","onClear","onClick","event","Chip","key","after","Icon","mdiClose","size","Size","xxs","s","onAfterClick","values","AutocompleteMultiple","chipsAlignment","onKeyDown","type","map","chip"],"mappings":"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"}