@lumx/react 3.1.1 → 3.1.3-alpha.0

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 (500) hide show
  1. package/{dist/CONTRIBUTING.md → CONTRIBUTING.md} +0 -0
  2. package/{dist/LICENSE.md → LICENSE.md} +0 -0
  3. package/{dist/_internal → _internal}/ClickAwayProvider.js +0 -0
  4. package/{dist/_internal → _internal}/ClickAwayProvider.js.map +0 -0
  5. package/{dist/_internal → _internal}/types.d.ts +1 -1
  6. package/{dist/index.d.ts → index.d.ts} +5 -5
  7. package/{dist/index.js → index.js} +4 -4
  8. package/{dist/index.js.map → index.js.map} +1 -1
  9. package/package.json +3 -3
  10. package/src/components/expansion-panel/ExpansionPanel.stories.tsx +65 -0
  11. package/src/components/expansion-panel/ExpansionPanel.test.tsx +2 -2
  12. package/src/components/expansion-panel/ExpansionPanel.tsx +8 -8
  13. package/{dist/utils → utils}/index.d.ts +0 -0
  14. package/{dist/utils → utils}/index.js +0 -0
  15. package/{dist/utils → utils}/index.js.map +0 -0
  16. package/dist/README.md +0 -38
  17. package/dist/package.json +0 -117
  18. package/dist/src/components/alert-dialog/AlertDialog.stories.tsx +0 -196
  19. package/dist/src/components/alert-dialog/AlertDialog.test.tsx +0 -43
  20. package/dist/src/components/alert-dialog/AlertDialog.tsx +0 -185
  21. package/dist/src/components/alert-dialog/__snapshots__/AlertDialog.test.tsx.snap +0 -551
  22. package/dist/src/components/alert-dialog/index.ts +0 -1
  23. package/dist/src/components/autocomplete/Autocomplete.stories.tsx +0 -70
  24. package/dist/src/components/autocomplete/Autocomplete.test.tsx +0 -181
  25. package/dist/src/components/autocomplete/Autocomplete.tsx +0 -292
  26. package/dist/src/components/autocomplete/AutocompleteMultiple.stories.tsx +0 -170
  27. package/dist/src/components/autocomplete/AutocompleteMultiple.test.tsx +0 -94
  28. package/dist/src/components/autocomplete/AutocompleteMultiple.tsx +0 -156
  29. package/dist/src/components/autocomplete/__mockData__/index.ts +0 -34
  30. package/dist/src/components/autocomplete/__snapshots__/Autocomplete.test.tsx.snap +0 -213
  31. package/dist/src/components/autocomplete/__snapshots__/AutocompleteMultiple.test.tsx.snap +0 -88
  32. package/dist/src/components/autocomplete/index.ts +0 -2
  33. package/dist/src/components/avatar/Avatar.stories.tsx +0 -92
  34. package/dist/src/components/avatar/Avatar.test.tsx +0 -39
  35. package/dist/src/components/avatar/Avatar.tsx +0 -112
  36. package/dist/src/components/avatar/__snapshots__/Avatar.test.tsx.snap +0 -681
  37. package/dist/src/components/avatar/index.ts +0 -1
  38. package/dist/src/components/badge/Badge.stories.tsx +0 -45
  39. package/dist/src/components/badge/Badge.test.tsx +0 -91
  40. package/dist/src/components/badge/Badge.tsx +0 -55
  41. package/dist/src/components/badge/__snapshots__/Badge.test.tsx.snap +0 -11
  42. package/dist/src/components/badge/index.ts +0 -1
  43. package/dist/src/components/button/Button.stories.tsx +0 -156
  44. package/dist/src/components/button/Button.test.tsx +0 -152
  45. package/dist/src/components/button/Button.tsx +0 -81
  46. package/dist/src/components/button/ButtonGroup.test.tsx +0 -66
  47. package/dist/src/components/button/ButtonGroup.tsx +0 -46
  48. package/dist/src/components/button/ButtonRoot.test.tsx +0 -203
  49. package/dist/src/components/button/ButtonRoot.tsx +0 -190
  50. package/dist/src/components/button/IconButton.test.tsx +0 -103
  51. package/dist/src/components/button/IconButton.tsx +0 -80
  52. package/dist/src/components/button/__snapshots__/Button.test.tsx.snap +0 -96
  53. package/dist/src/components/button/__snapshots__/ButtonGroup.test.tsx.snap +0 -22
  54. package/dist/src/components/button/__snapshots__/ButtonRoot.test.tsx.snap +0 -160
  55. package/dist/src/components/button/__snapshots__/IconButton.test.tsx.snap +0 -83
  56. package/dist/src/components/button/index.ts +0 -4
  57. package/dist/src/components/checkbox/Checkbox.stories.tsx +0 -37
  58. package/dist/src/components/checkbox/Checkbox.test.tsx +0 -114
  59. package/dist/src/components/checkbox/Checkbox.tsx +0 -145
  60. package/dist/src/components/checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -141
  61. package/dist/src/components/checkbox/index.ts +0 -1
  62. package/dist/src/components/chip/Chip.stories.tsx +0 -21
  63. package/dist/src/components/chip/Chip.test.tsx +0 -199
  64. package/dist/src/components/chip/Chip.tsx +0 -154
  65. package/dist/src/components/chip/ChipGroup.test.tsx +0 -29
  66. package/dist/src/components/chip/ChipGroup.tsx +0 -62
  67. package/dist/src/components/chip/__snapshots__/Chip.test.tsx.snap +0 -12
  68. package/dist/src/components/chip/__snapshots__/ChipGroup.test.tsx.snap +0 -29
  69. package/dist/src/components/chip/index.ts +0 -2
  70. package/dist/src/components/comment-block/CommentBlock.stories.tsx +0 -30
  71. package/dist/src/components/comment-block/CommentBlock.test.tsx +0 -28
  72. package/dist/src/components/comment-block/CommentBlock.tsx +0 -174
  73. package/dist/src/components/comment-block/__snapshots__/CommentBlock.test.tsx.snap +0 -92
  74. package/dist/src/components/comment-block/index.ts +0 -1
  75. package/dist/src/components/date-picker/DatePicker.test.tsx +0 -41
  76. package/dist/src/components/date-picker/DatePicker.tsx +0 -56
  77. package/dist/src/components/date-picker/DatePickerControlled.test.tsx +0 -44
  78. package/dist/src/components/date-picker/DatePickerControlled.tsx +0 -128
  79. package/dist/src/components/date-picker/DatePickerField.stories.tsx +0 -93
  80. package/dist/src/components/date-picker/DatePickerField.test.tsx +0 -47
  81. package/dist/src/components/date-picker/DatePickerField.tsx +0 -141
  82. package/dist/src/components/date-picker/__snapshots__/DatePicker.test.tsx.snap +0 -22
  83. package/dist/src/components/date-picker/__snapshots__/DatePickerControlled.test.tsx.snap +0 -597
  84. package/dist/src/components/date-picker/__snapshots__/DatePickerField.test.tsx.snap +0 -43
  85. package/dist/src/components/date-picker/constants.ts +0 -11
  86. package/dist/src/components/date-picker/index.ts +0 -4
  87. package/dist/src/components/date-picker/types.ts +0 -28
  88. package/dist/src/components/dialog/Dialog.stories.tsx +0 -426
  89. package/dist/src/components/dialog/Dialog.test.tsx +0 -93
  90. package/dist/src/components/dialog/Dialog.tsx +0 -263
  91. package/dist/src/components/dialog/__snapshots__/Dialog.test.tsx.snap +0 -960
  92. package/dist/src/components/dialog/index.ts +0 -1
  93. package/dist/src/components/divider/Divider.test.tsx +0 -93
  94. package/dist/src/components/divider/Divider.tsx +0 -51
  95. package/dist/src/components/divider/__snapshots__/Divider.test.tsx.snap +0 -9
  96. package/dist/src/components/divider/index.ts +0 -1
  97. package/dist/src/components/drag-handle/DragHandle.tsx +0 -50
  98. package/dist/src/components/drag-handle/index.ts +0 -1
  99. package/dist/src/components/dropdown/Dropdown.stories.tsx +0 -216
  100. package/dist/src/components/dropdown/Dropdown.test.tsx +0 -97
  101. package/dist/src/components/dropdown/Dropdown.tsx +0 -184
  102. package/dist/src/components/dropdown/__snapshots__/Dropdown.test.tsx.snap +0 -35
  103. package/dist/src/components/dropdown/index.ts +0 -1
  104. package/dist/src/components/expansion-panel/ExpansionPanel.test.tsx +0 -116
  105. package/dist/src/components/expansion-panel/ExpansionPanel.tsx +0 -170
  106. package/dist/src/components/expansion-panel/index.ts +0 -1
  107. package/dist/src/components/flag/Flag.stories.tsx +0 -23
  108. package/dist/src/components/flag/Flag.test.tsx +0 -86
  109. package/dist/src/components/flag/Flag.tsx +0 -47
  110. package/dist/src/components/flag/__snapshots__/Flag.test.tsx.snap +0 -133
  111. package/dist/src/components/flag/index.ts +0 -1
  112. package/dist/src/components/flex-box/FlexBox.stories.tsx +0 -245
  113. package/dist/src/components/flex-box/FlexBox.test.tsx +0 -65
  114. package/dist/src/components/flex-box/FlexBox.tsx +0 -98
  115. package/dist/src/components/flex-box/__snapshots__/FlexBox.test.tsx.snap +0 -492
  116. package/dist/src/components/flex-box/index.ts +0 -1
  117. package/dist/src/components/generic-block/GenericBlock.stories.jsx +0 -128
  118. package/dist/src/components/generic-block/GenericBlock.test.tsx +0 -152
  119. package/dist/src/components/generic-block/GenericBlock.tsx +0 -222
  120. package/dist/src/components/generic-block/constants.ts +0 -9
  121. package/dist/src/components/generic-block/index.ts +0 -2
  122. package/dist/src/components/grid/Grid.tsx +0 -73
  123. package/dist/src/components/grid/GridItem.tsx +0 -54
  124. package/dist/src/components/grid/index.ts +0 -2
  125. package/dist/src/components/grid-column/GridColumn.stories.jsx +0 -56
  126. package/dist/src/components/grid-column/GridColumn.test.jsx +0 -58
  127. package/dist/src/components/grid-column/GridColumn.tsx +0 -90
  128. package/dist/src/components/grid-column/index.ts +0 -1
  129. package/dist/src/components/heading/Heading.stories.tsx +0 -108
  130. package/dist/src/components/heading/Heading.test.tsx +0 -82
  131. package/dist/src/components/heading/Heading.tsx +0 -63
  132. package/dist/src/components/heading/HeadingLevelProvider.tsx +0 -30
  133. package/dist/src/components/heading/constants.ts +0 -16
  134. package/dist/src/components/heading/context.tsx +0 -13
  135. package/dist/src/components/heading/index.ts +0 -3
  136. package/dist/src/components/heading/useHeadingLevel.tsx +0 -8
  137. package/dist/src/components/icon/Icon.stories.tsx +0 -76
  138. package/dist/src/components/icon/Icon.test.tsx +0 -102
  139. package/dist/src/components/icon/Icon.tsx +0 -121
  140. package/dist/src/components/icon/__snapshots__/Icon.test.tsx.snap +0 -49
  141. package/dist/src/components/icon/index.ts +0 -1
  142. package/dist/src/components/image-block/ImageBlock.stories.tsx +0 -52
  143. package/dist/src/components/image-block/ImageBlock.test.tsx +0 -28
  144. package/dist/src/components/image-block/ImageBlock.tsx +0 -151
  145. package/dist/src/components/image-block/__snapshots__/ImageBlock.test.tsx.snap +0 -64
  146. package/dist/src/components/image-block/index.ts +0 -1
  147. package/dist/src/components/index.ts +0 -176
  148. package/dist/src/components/inline-list/InlineList.stories.tsx +0 -40
  149. package/dist/src/components/inline-list/InlineList.test.tsx +0 -41
  150. package/dist/src/components/inline-list/InlineList.tsx +0 -82
  151. package/dist/src/components/inline-list/index.ts +0 -1
  152. package/dist/src/components/input-helper/InputHelper.stories.tsx +0 -29
  153. package/dist/src/components/input-helper/InputHelper.test.tsx +0 -107
  154. package/dist/src/components/input-helper/InputHelper.tsx +0 -61
  155. package/dist/src/components/input-helper/__snapshots__/InputHelper.test.tsx.snap +0 -9
  156. package/dist/src/components/input-helper/constants.ts +0 -11
  157. package/dist/src/components/input-helper/index.ts +0 -1
  158. package/dist/src/components/input-label/InputLabel.stories.tsx +0 -15
  159. package/dist/src/components/input-label/InputLabel.test.tsx +0 -86
  160. package/dist/src/components/input-label/InputLabel.tsx +0 -59
  161. package/dist/src/components/input-label/__snapshots__/InputLabel.test.tsx.snap +0 -10
  162. package/dist/src/components/input-label/index.ts +0 -1
  163. package/dist/src/components/lightbox/Lightbox.stories.tsx +0 -83
  164. package/dist/src/components/lightbox/Lightbox.test.tsx +0 -30
  165. package/dist/src/components/lightbox/Lightbox.tsx +0 -153
  166. package/dist/src/components/lightbox/__snapshots__/Lightbox.test.tsx.snap +0 -194
  167. package/dist/src/components/lightbox/index.ts +0 -1
  168. package/dist/src/components/link/Link.stories.tsx +0 -141
  169. package/dist/src/components/link/Link.test.tsx +0 -60
  170. package/dist/src/components/link/Link.tsx +0 -156
  171. package/dist/src/components/link/__snapshots__/Link.test.tsx.snap +0 -29
  172. package/dist/src/components/link/index.ts +0 -1
  173. package/dist/src/components/link-preview/LinkPreview.stories.tsx +0 -88
  174. package/dist/src/components/link-preview/LinkPreview.test.tsx +0 -102
  175. package/dist/src/components/link-preview/LinkPreview.tsx +0 -158
  176. package/dist/src/components/link-preview/index.ts +0 -1
  177. package/dist/src/components/list/List.stories.tsx +0 -141
  178. package/dist/src/components/list/List.test.tsx +0 -29
  179. package/dist/src/components/list/List.tsx +0 -94
  180. package/dist/src/components/list/ListDivider.stories.tsx +0 -7
  181. package/dist/src/components/list/ListDivider.test.tsx +0 -29
  182. package/dist/src/components/list/ListDivider.tsx +0 -42
  183. package/dist/src/components/list/ListItem.stories.tsx +0 -62
  184. package/dist/src/components/list/ListItem.test.tsx +0 -29
  185. package/dist/src/components/list/ListItem.tsx +0 -154
  186. package/dist/src/components/list/ListSubheader.stories.tsx +0 -8
  187. package/dist/src/components/list/ListSubheader.test.tsx +0 -29
  188. package/dist/src/components/list/ListSubheader.tsx +0 -43
  189. package/dist/src/components/list/__snapshots__/List.test.tsx.snap +0 -360
  190. package/dist/src/components/list/__snapshots__/ListDivider.test.tsx.snap +0 -7
  191. package/dist/src/components/list/__snapshots__/ListItem.test.tsx.snap +0 -160
  192. package/dist/src/components/list/__snapshots__/ListSubheader.test.tsx.snap +0 -9
  193. package/dist/src/components/list/index.ts +0 -4
  194. package/dist/src/components/list/useInteractiveList.tsx +0 -202
  195. package/dist/src/components/message/Message.stories.tsx +0 -27
  196. package/dist/src/components/message/Message.test.tsx +0 -76
  197. package/dist/src/components/message/Message.tsx +0 -74
  198. package/dist/src/components/message/__snapshots__/Message.test.tsx.snap +0 -15
  199. package/dist/src/components/message/index.ts +0 -1
  200. package/dist/src/components/mosaic/Mosaic.stories.tsx +0 -85
  201. package/dist/src/components/mosaic/Mosaic.test.tsx +0 -120
  202. package/dist/src/components/mosaic/Mosaic.tsx +0 -95
  203. package/dist/src/components/mosaic/__snapshots__/Mosaic.test.tsx.snap +0 -357
  204. package/dist/src/components/mosaic/index.ts +0 -1
  205. package/dist/src/components/notification/Notification.test.tsx +0 -108
  206. package/dist/src/components/notification/Notification.tsx +0 -130
  207. package/dist/src/components/notification/Notifications.stories.tsx +0 -77
  208. package/dist/src/components/notification/__snapshots__/Notification.test.tsx.snap +0 -34
  209. package/dist/src/components/notification/constants.ts +0 -28
  210. package/dist/src/components/notification/index.ts +0 -1
  211. package/dist/src/components/popover/Popover.stories.tsx +0 -386
  212. package/dist/src/components/popover/Popover.test.tsx +0 -30
  213. package/dist/src/components/popover/Popover.tsx +0 -382
  214. package/dist/src/components/popover/__snapshots__/Popover.test.tsx.snap +0 -343
  215. package/dist/src/components/popover/index.ts +0 -1
  216. package/dist/src/components/popover-dialog/PopoverDialog.stories.tsx +0 -75
  217. package/dist/src/components/popover-dialog/PopoverDialog.test.tsx +0 -65
  218. package/dist/src/components/popover-dialog/PopoverDialog.tsx +0 -65
  219. package/dist/src/components/popover-dialog/index.tsx +0 -1
  220. package/dist/src/components/post-block/PostBlock.test.tsx +0 -28
  221. package/dist/src/components/post-block/PostBlock.tsx +0 -123
  222. package/dist/src/components/post-block/__snapshots__/PostBlock.test.tsx.snap +0 -139
  223. package/dist/src/components/post-block/index.ts +0 -1
  224. package/dist/src/components/progress/Progress.tsx +0 -68
  225. package/dist/src/components/progress/ProgressCircular.stories.tsx +0 -18
  226. package/dist/src/components/progress/ProgressCircular.test.tsx +0 -49
  227. package/dist/src/components/progress/ProgressCircular.tsx +0 -68
  228. package/dist/src/components/progress/ProgressLinear.stories.tsx +0 -8
  229. package/dist/src/components/progress/ProgressLinear.test.tsx +0 -37
  230. package/dist/src/components/progress/ProgressLinear.tsx +0 -52
  231. package/dist/src/components/progress/index.ts +0 -3
  232. package/dist/src/components/progress-tracker/ProgressTracker.stories.tsx +0 -145
  233. package/dist/src/components/progress-tracker/ProgressTracker.test.tsx +0 -57
  234. package/dist/src/components/progress-tracker/ProgressTracker.tsx +0 -89
  235. package/dist/src/components/progress-tracker/ProgressTrackerProvider.test.tsx +0 -42
  236. package/dist/src/components/progress-tracker/ProgressTrackerProvider.tsx +0 -66
  237. package/dist/src/components/progress-tracker/ProgressTrackerStep.test.tsx +0 -128
  238. package/dist/src/components/progress-tracker/ProgressTrackerStep.tsx +0 -159
  239. package/dist/src/components/progress-tracker/ProgressTrackerStepPanel.test.tsx +0 -73
  240. package/dist/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +0 -67
  241. package/dist/src/components/progress-tracker/__snapshots__/ProgressTracker.test.tsx.snap +0 -41
  242. package/dist/src/components/progress-tracker/__snapshots__/ProgressTrackerStep.test.tsx.snap +0 -141
  243. package/dist/src/components/progress-tracker/__snapshots__/ProgressTrackerStepPanel.test.tsx.snap +0 -25
  244. package/dist/src/components/progress-tracker/index.ts +0 -4
  245. package/dist/src/components/radio-button/RadioButton.stories.tsx +0 -28
  246. package/dist/src/components/radio-button/RadioButton.test.tsx +0 -123
  247. package/dist/src/components/radio-button/RadioButton.tsx +0 -141
  248. package/dist/src/components/radio-button/RadioGroup.stories.tsx +0 -42
  249. package/dist/src/components/radio-button/RadioGroup.test.tsx +0 -77
  250. package/dist/src/components/radio-button/RadioGroup.tsx +0 -52
  251. package/dist/src/components/radio-button/__snapshots__/RadioButton.test.tsx.snap +0 -113
  252. package/dist/src/components/radio-button/__snapshots__/RadioGroup.test.tsx.snap +0 -26
  253. package/dist/src/components/radio-button/index.ts +0 -2
  254. package/dist/src/components/select/Select.stories.tsx +0 -399
  255. package/dist/src/components/select/Select.test.tsx +0 -359
  256. package/dist/src/components/select/Select.tsx +0 -193
  257. package/dist/src/components/select/SelectMultiple.stories.tsx +0 -227
  258. package/dist/src/components/select/SelectMultiple.test.tsx +0 -405
  259. package/dist/src/components/select/SelectMultiple.tsx +0 -198
  260. package/dist/src/components/select/WithSelectContext.tsx +0 -143
  261. package/dist/src/components/select/__snapshots__/Select.test.tsx.snap +0 -43
  262. package/dist/src/components/select/__snapshots__/SelectMultiple.test.tsx.snap +0 -87
  263. package/dist/src/components/select/constants.ts +0 -53
  264. package/dist/src/components/select/index.ts +0 -2
  265. package/dist/src/components/side-navigation/SideNavigation.stories.tsx +0 -191
  266. package/dist/src/components/side-navigation/SideNavigation.test.tsx +0 -52
  267. package/dist/src/components/side-navigation/SideNavigation.tsx +0 -54
  268. package/dist/src/components/side-navigation/SideNavigationItem.test.tsx +0 -175
  269. package/dist/src/components/side-navigation/SideNavigationItem.tsx +0 -162
  270. package/dist/src/components/side-navigation/__snapshots__/SideNavigation.test.tsx.snap +0 -7
  271. package/dist/src/components/side-navigation/__snapshots__/SideNavigationItem.test.tsx.snap +0 -30
  272. package/dist/src/components/side-navigation/index.ts +0 -2
  273. package/dist/src/components/skeleton/SkeletonCircle.stories.tsx +0 -25
  274. package/dist/src/components/skeleton/SkeletonCircle.test.tsx +0 -28
  275. package/dist/src/components/skeleton/SkeletonCircle.tsx +0 -52
  276. package/dist/src/components/skeleton/SkeletonRectangle.stories.tsx +0 -107
  277. package/dist/src/components/skeleton/SkeletonRectangle.test.tsx +0 -28
  278. package/dist/src/components/skeleton/SkeletonRectangle.tsx +0 -78
  279. package/dist/src/components/skeleton/SkeletonTypography.stories.tsx +0 -26
  280. package/dist/src/components/skeleton/SkeletonTypography.test.tsx +0 -28
  281. package/dist/src/components/skeleton/SkeletonTypography.tsx +0 -57
  282. package/dist/src/components/skeleton/__snapshots__/SkeletonCircle.test.tsx.snap +0 -54
  283. package/dist/src/components/skeleton/__snapshots__/SkeletonRectangle.test.tsx.snap +0 -177
  284. package/dist/src/components/skeleton/__snapshots__/SkeletonTypography.test.tsx.snap +0 -174
  285. package/dist/src/components/skeleton/index.ts +0 -3
  286. package/dist/src/components/slider/Slider.stories.tsx +0 -29
  287. package/dist/src/components/slider/Slider.test.tsx +0 -31
  288. package/dist/src/components/slider/Slider.tsx +0 -299
  289. package/dist/src/components/slider/__snapshots__/Slider.test.tsx.snap +0 -122
  290. package/dist/src/components/slider/index.ts +0 -2
  291. package/dist/src/components/slideshow/Slides.tsx +0 -124
  292. package/dist/src/components/slideshow/Slideshow.stories.tsx +0 -212
  293. package/dist/src/components/slideshow/Slideshow.test.tsx +0 -39
  294. package/dist/src/components/slideshow/Slideshow.tsx +0 -170
  295. package/dist/src/components/slideshow/SlideshowControls.stories.tsx +0 -112
  296. package/dist/src/components/slideshow/SlideshowControls.tsx +0 -241
  297. package/dist/src/components/slideshow/SlideshowItem.tsx +0 -52
  298. package/dist/src/components/slideshow/SlideshowItemGroup.tsx +0 -64
  299. package/dist/src/components/slideshow/__snapshots__/Slideshow.test.tsx.snap +0 -157
  300. package/dist/src/components/slideshow/constants.ts +0 -24
  301. package/dist/src/components/slideshow/index.ts +0 -4
  302. package/dist/src/components/slideshow/useKeyNavigate.ts +0 -28
  303. package/dist/src/components/slideshow/usePaginationVisibleRange.ts +0 -37
  304. package/dist/src/components/slideshow/useSlideFocusManagement.tsx +0 -92
  305. package/dist/src/components/slideshow/useSwipeNavigate.ts +0 -18
  306. package/dist/src/components/switch/Switch.stories.tsx +0 -36
  307. package/dist/src/components/switch/Switch.test.tsx +0 -189
  308. package/dist/src/components/switch/Switch.tsx +0 -141
  309. package/dist/src/components/switch/__snapshots__/Switch.test.tsx.snap +0 -179
  310. package/dist/src/components/switch/index.ts +0 -1
  311. package/dist/src/components/table/Table.test.tsx +0 -28
  312. package/dist/src/components/table/Table.tsx +0 -59
  313. package/dist/src/components/table/TableBody.test.tsx +0 -22
  314. package/dist/src/components/table/TableBody.tsx +0 -44
  315. package/dist/src/components/table/TableCell.test.tsx +0 -23
  316. package/dist/src/components/table/TableCell.tsx +0 -125
  317. package/dist/src/components/table/TableHeader.test.tsx +0 -22
  318. package/dist/src/components/table/TableHeader.tsx +0 -50
  319. package/dist/src/components/table/TableRow.test.tsx +0 -22
  320. package/dist/src/components/table/TableRow.tsx +0 -68
  321. package/dist/src/components/table/__snapshots__/Table.test.tsx.snap +0 -263
  322. package/dist/src/components/table/index.ts +0 -5
  323. package/dist/src/components/tabs/Tab.test.tsx +0 -116
  324. package/dist/src/components/tabs/Tab.tsx +0 -120
  325. package/dist/src/components/tabs/TabList.test.tsx +0 -80
  326. package/dist/src/components/tabs/TabList.tsx +0 -82
  327. package/dist/src/components/tabs/TabPanel.test.tsx +0 -74
  328. package/dist/src/components/tabs/TabPanel.tsx +0 -65
  329. package/dist/src/components/tabs/TabProvider.test.tsx +0 -42
  330. package/dist/src/components/tabs/TabProvider.tsx +0 -59
  331. package/dist/src/components/tabs/Tabs.stories.tsx +0 -134
  332. package/dist/src/components/tabs/__snapshots__/Tab.test.tsx.snap +0 -62
  333. package/dist/src/components/tabs/__snapshots__/TabList.test.tsx.snap +0 -22
  334. package/dist/src/components/tabs/__snapshots__/TabPanel.test.tsx.snap +0 -25
  335. package/dist/src/components/tabs/index.ts +0 -4
  336. package/dist/src/components/tabs/state.ts +0 -116
  337. package/dist/src/components/tabs/test.mocks.ts +0 -33
  338. package/dist/src/components/text/Text.stories.jsx +0 -75
  339. package/dist/src/components/text/Text.test.tsx +0 -108
  340. package/dist/src/components/text/Text.tsx +0 -121
  341. package/dist/src/components/text/index.ts +0 -1
  342. package/dist/src/components/text-field/TextField.stories.tsx +0 -169
  343. package/dist/src/components/text-field/TextField.test.tsx +0 -171
  344. package/dist/src/components/text-field/TextField.tsx +0 -432
  345. package/dist/src/components/text-field/__snapshots__/TextField.test.tsx.snap +0 -42
  346. package/dist/src/components/text-field/index.ts +0 -1
  347. package/dist/src/components/thumbnail/Thumbnail.stories.tsx +0 -510
  348. package/dist/src/components/thumbnail/Thumbnail.test.tsx +0 -46
  349. package/dist/src/components/thumbnail/Thumbnail.tsx +0 -222
  350. package/dist/src/components/thumbnail/__snapshots__/Thumbnail.test.tsx.snap +0 -130
  351. package/dist/src/components/thumbnail/index.ts +0 -3
  352. package/dist/src/components/thumbnail/types.ts +0 -39
  353. package/dist/src/components/thumbnail/useFocusPointStyle.test.ts +0 -92
  354. package/dist/src/components/thumbnail/useFocusPointStyle.tsx +0 -111
  355. package/dist/src/components/thumbnail/useImageLoad.ts +0 -40
  356. package/dist/src/components/toolbar/Toolbar.tsx +0 -67
  357. package/dist/src/components/toolbar/index.ts +0 -1
  358. package/dist/src/components/tooltip/Tooltip.stories.tsx +0 -172
  359. package/dist/src/components/tooltip/Tooltip.test.tsx +0 -105
  360. package/dist/src/components/tooltip/Tooltip.tsx +0 -122
  361. package/dist/src/components/tooltip/__snapshots__/Tooltip.test.tsx.snap +0 -233
  362. package/dist/src/components/tooltip/index.ts +0 -1
  363. package/dist/src/components/tooltip/useInjectTooltipRef.tsx +0 -44
  364. package/dist/src/components/tooltip/useTooltipOpen.tsx +0 -113
  365. package/dist/src/components/uploader/Uploader.test.tsx +0 -87
  366. package/dist/src/components/uploader/Uploader.tsx +0 -105
  367. package/dist/src/components/uploader/__snapshots__/Uploader.test.tsx.snap +0 -14
  368. package/dist/src/components/uploader/index.ts +0 -1
  369. package/dist/src/components/user-block/UserBlock.stories.tsx +0 -76
  370. package/dist/src/components/user-block/UserBlock.test.tsx +0 -38
  371. package/dist/src/components/user-block/UserBlock.tsx +0 -179
  372. package/dist/src/components/user-block/__snapshots__/UserBlock.test.tsx.snap +0 -362
  373. package/dist/src/components/user-block/index.ts +0 -1
  374. package/dist/src/constants.ts +0 -17
  375. package/dist/src/hooks/useBooleanState.tsx +0 -13
  376. package/dist/src/hooks/useCallbackOnEscape.ts +0 -34
  377. package/dist/src/hooks/useChipGroupNavigation.tsx +0 -75
  378. package/dist/src/hooks/useClickAway.tsx +0 -47
  379. package/dist/src/hooks/useDisableBodyScroll.ts +0 -28
  380. package/dist/src/hooks/useEventCallback.tsx +0 -17
  381. package/dist/src/hooks/useFocus.tsx +0 -21
  382. package/dist/src/hooks/useFocusTrap.ts +0 -85
  383. package/dist/src/hooks/useFocusWithin.ts +0 -33
  384. package/dist/src/hooks/useInfiniteScroll.tsx +0 -60
  385. package/dist/src/hooks/useIntersectionObserver.tsx +0 -43
  386. package/dist/src/hooks/useInterval.tsx +0 -31
  387. package/dist/src/hooks/useKeyboardListNavigation.tsx +0 -204
  388. package/dist/src/hooks/useListenFocus.tsx +0 -26
  389. package/dist/src/hooks/useOnResize.ts +0 -41
  390. package/dist/src/hooks/useRovingTabIndex.tsx +0 -90
  391. package/dist/src/hooks/useSlideshowControls.ts +0 -243
  392. package/dist/src/hooks/useStopPropagation.ts +0 -21
  393. package/dist/src/hooks/useTransitionVisibility.ts +0 -54
  394. package/dist/src/index.ts +0 -58
  395. package/dist/src/stories/chromaticForceScreenSize.tsx +0 -7
  396. package/dist/src/stories/generated/Autocomplete/Demos.stories.tsx +0 -7
  397. package/dist/src/stories/generated/Avatar/Demos.stories.tsx +0 -7
  398. package/dist/src/stories/generated/Badge/Demos.stories.tsx +0 -9
  399. package/dist/src/stories/generated/Button/Demos.stories.tsx +0 -11
  400. package/dist/src/stories/generated/Checkbox/Demos.stories.tsx +0 -6
  401. package/dist/src/stories/generated/Chip/Demos.stories.tsx +0 -11
  402. package/dist/src/stories/generated/CommentBlock/Demos.stories.tsx +0 -8
  403. package/dist/src/stories/generated/DatePicker/Demos.stories.tsx +0 -8
  404. package/dist/src/stories/generated/Dialog/Demos.stories.tsx +0 -10
  405. package/dist/src/stories/generated/Divider/Demos.stories.tsx +0 -6
  406. package/dist/src/stories/generated/Dropdown/Demos.stories.tsx +0 -8
  407. package/dist/src/stories/generated/ExpansionPanel/Demos.stories.tsx +0 -9
  408. package/dist/src/stories/generated/Flag/Demos.stories.tsx +0 -6
  409. package/dist/src/stories/generated/GenericBlock/Demos.stories.tsx +0 -8
  410. package/dist/src/stories/generated/Heading/Demos.stories.tsx +0 -6
  411. package/dist/src/stories/generated/Icon/Demos.stories.tsx +0 -8
  412. package/dist/src/stories/generated/ImageBlock/Demos.stories.tsx +0 -9
  413. package/dist/src/stories/generated/Lightbox/Demos.stories.tsx +0 -6
  414. package/dist/src/stories/generated/Link/Demos.stories.tsx +0 -8
  415. package/dist/src/stories/generated/LinkPreview/Demos.stories.tsx +0 -7
  416. package/dist/src/stories/generated/List/Demos.stories.tsx +0 -11
  417. package/dist/src/stories/generated/Message/Demos.stories.tsx +0 -10
  418. package/dist/src/stories/generated/Mosaic/Demos.stories.tsx +0 -9
  419. package/dist/src/stories/generated/Notification/Demos.stories.tsx +0 -6
  420. package/dist/src/stories/generated/Popover/Demos.stories.tsx +0 -11
  421. package/dist/src/stories/generated/PopoverDialog/Demos.stories.tsx +0 -6
  422. package/dist/src/stories/generated/PostBlock/Demos.stories.tsx +0 -6
  423. package/dist/src/stories/generated/Progress/Demos.stories.tsx +0 -7
  424. package/dist/src/stories/generated/ProgressTracker/Demos.stories.tsx +0 -9
  425. package/dist/src/stories/generated/RadioButton/Demos.stories.tsx +0 -6
  426. package/dist/src/stories/generated/Select/Demos.stories.tsx +0 -14
  427. package/dist/src/stories/generated/SideNavigation/Demos.stories.tsx +0 -10
  428. package/dist/src/stories/generated/Skeleton/Demos.stories.tsx +0 -9
  429. package/dist/src/stories/generated/Slider/Demos.stories.tsx +0 -9
  430. package/dist/src/stories/generated/Slideshow/Demos.stories.tsx +0 -8
  431. package/dist/src/stories/generated/Switch/Demos.stories.tsx +0 -6
  432. package/dist/src/stories/generated/Table/Demos.stories.tsx +0 -6
  433. package/dist/src/stories/generated/Tabs/Demos.stories.tsx +0 -8
  434. package/dist/src/stories/generated/TextField/Demos.stories.tsx +0 -19
  435. package/dist/src/stories/generated/Thumbnail/Demos.stories.tsx +0 -12
  436. package/dist/src/stories/generated/Toolbar/Demos.stories.tsx +0 -10
  437. package/dist/src/stories/generated/Tooltip/Demos.stories.tsx +0 -8
  438. package/dist/src/stories/generated/Uploader/Demos.stories.tsx +0 -8
  439. package/dist/src/stories/generated/UserBlock/Demos.stories.tsx +0 -10
  440. package/dist/src/stories/knobs/buttonKnob.ts +0 -9
  441. package/dist/src/stories/knobs/emphasisKnob.ts +0 -8
  442. package/dist/src/stories/knobs/enumKnob.ts +0 -14
  443. package/dist/src/stories/knobs/focusKnob.ts +0 -3
  444. package/dist/src/stories/knobs/image.ts +0 -69
  445. package/dist/src/stories/knobs/lorem.ts +0 -59
  446. package/dist/src/stories/knobs/sizeKnob.ts +0 -5
  447. package/dist/src/stories/knobs/thumbnailsKnob.ts +0 -9
  448. package/dist/src/stories/utils/CustomLink.tsx +0 -7
  449. package/dist/src/stories/withResizableBox.tsx +0 -18
  450. package/dist/src/testing/utils/commonTestsSuite.ts +0 -71
  451. package/dist/src/testing/utils/commonTestsSuiteRTL.ts +0 -55
  452. package/dist/src/testing/utils/index.ts +0 -4
  453. package/dist/src/testing/utils/itShouldRenderStories.tsx +0 -103
  454. package/dist/src/testing/utils/queries.ts +0 -19
  455. package/dist/src/untypped-modules.d.ts +0 -7
  456. package/dist/src/utils/ClickAwayProvider/ClickAwayProvider.stories.jsx +0 -58
  457. package/dist/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +0 -65
  458. package/dist/src/utils/ClickAwayProvider/index.ts +0 -1
  459. package/dist/src/utils/MaterialThemeSwitcher/MaterialThemeSwitcher.tsx +0 -54
  460. package/dist/src/utils/MaterialThemeSwitcher/index.ts +0 -1
  461. package/dist/src/utils/browserDoesNotSupportHover.test.js +0 -24
  462. package/dist/src/utils/browserDoesNotSupportHover.ts +0 -2
  463. package/dist/src/utils/clamp.ts +0 -17
  464. package/dist/src/utils/className.ts +0 -44
  465. package/dist/src/utils/event.ts +0 -1
  466. package/dist/src/utils/flattenChildren.test.tsx +0 -58
  467. package/dist/src/utils/flattenChildren.ts +0 -27
  468. package/dist/src/utils/focus/constants.ts +0 -5
  469. package/dist/src/utils/focus/getFirstAndLastFocusable.test.ts +0 -134
  470. package/dist/src/utils/focus/getFirstAndLastFocusable.ts +0 -21
  471. package/dist/src/utils/focus/getFocusableElements.test.ts +0 -151
  472. package/dist/src/utils/focus/getFocusableElements.ts +0 -7
  473. package/dist/src/utils/index.ts +0 -5
  474. package/dist/src/utils/isInternetExplorer.ts +0 -15
  475. package/dist/src/utils/makeListenerTowerContext.ts +0 -32
  476. package/dist/src/utils/mergeRefs.ts +0 -22
  477. package/dist/src/utils/partitionMulti.ts +0 -28
  478. package/dist/src/utils/renderLink.tsx +0 -17
  479. package/dist/src/utils/type.ts +0 -113
  480. package/dist/src/utils/userHasReducedMotion.ts +0 -7
  481. package/dist/src/utils/utils.test.ts +0 -48
  482. package/jest/__mocks__/@storybook/addon-actions.js +0 -3
  483. package/jest/__mocks__/@storybook/addon-knobs.js +0 -6
  484. package/jest/__mocks__/emptyFileMockTransformer.js +0 -8
  485. package/jest/__mocks__/emptyModuleMock.js +0 -1
  486. package/jest/configure.js +0 -6
  487. package/jest/index.js +0 -36
  488. package/jest/transform.js +0 -6
  489. package/rollup.config.js +0 -98
  490. package/storybook/build +0 -4
  491. package/storybook/generate-demo-stories.js +0 -59
  492. package/storybook/main.js +0 -67
  493. package/storybook/package.json +0 -13
  494. package/storybook/preview.js +0 -11
  495. package/storybook/start +0 -4
  496. package/storybook/story-block/StoryBlock.tsx +0 -49
  497. package/storybook/story-block/decorator.jsx +0 -7
  498. package/storybook/story-block/index.scss +0 -27
  499. package/storybook/yarn.lock +0 -13192
  500. package/tsconfig.json +0 -3
@@ -1,19 +0,0 @@
1
- import { buildQueries } from '@testing-library/react';
2
-
3
- export const queryAllByClassName = (container: HTMLElement, className: string) =>
4
- Array.from(container.getElementsByClassName(className) as HTMLCollectionOf<HTMLElement>);
5
-
6
- export const [queryByClassName, getAllByClassName, getByClassName, findAllByClassName, findByClassName] = buildQueries(
7
- queryAllByClassName,
8
- (_, className) => `Multiple \`.${className}\` found`,
9
- (_, className) => `No \`.${className}\` found`,
10
- );
11
-
12
- export const queryAllByTagName = (container: HTMLElement, tagName: string) =>
13
- Array.from(container.getElementsByTagName(tagName) as HTMLCollectionOf<HTMLElement>);
14
-
15
- export const [queryByTagName, getAllByTagName, getByTagName, findAllByTagName, findByTagName] = buildQueries(
16
- queryAllByTagName,
17
- (_, tagName) => `Multiple \`${tagName}\` found`,
18
- (_, tagName) => `No \`${tagName}\` found`,
19
- );
@@ -1,7 +0,0 @@
1
- /**
2
- * List untypped modules here to declare them as explicit any.
3
- */
4
- declare module 'test-data-bot';
5
- declare module '*.jpg';
6
- declare module '@storybook/addon-knobs';
7
- declare module '@storybook/addon-actions';
@@ -1,58 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-use-before-define */
2
- import { Button } from '@lumx/react';
3
- import { ClickAwayProvider } from '@lumx/react/utils/ClickAwayProvider';
4
- import React, { useCallback, useRef, useState } from 'react';
5
- import { createPortal } from 'react-dom';
6
-
7
- export default {
8
- title: 'LumX components/ClickAwayProvider',
9
- parameters: {
10
- // Disables Chromatic snapshot (not relevant for this story).
11
- chromatic: { disable: true },
12
- },
13
- };
14
-
15
- // eslint-disable-next-line react/display-name
16
- const Card = React.forwardRef(({ top, children, close }, ref) => (
17
- <ClickAwayProvider callback={close} childrenRefs={useRef([ref])}>
18
- {createPortal(
19
- <div
20
- className="lumx-spacing-padding"
21
- ref={ref}
22
- style={{ position: 'absolute', top, border: '1px solid red' }}
23
- >
24
- {children}
25
- </div>,
26
- document.body,
27
- )}
28
- </ClickAwayProvider>
29
- ));
30
-
31
- const ButtonWithCard = ({ level, parentRef }) => {
32
- const ref3 = useRef();
33
- const [isOpen3, setOpen3] = useState(false);
34
- const open3 = useCallback(() => setOpen3(true), []);
35
- const close3 = useCallback(() => setOpen3(false), []);
36
- const nextLevel = level + 1;
37
-
38
- return (
39
- <>
40
- Level {level} - <Button onClick={open3}>Open level {nextLevel}</Button>
41
- {isOpen3 && (
42
- <Card ref={ref3} close={close3} top={parentRef?.current?.getBoundingClientRect().bottom || '130px'}>
43
- {nextLevel === 4 ? `Level ${nextLevel}` : <ButtonWithCard level={nextLevel} parentRef={ref3} />}
44
- </Card>
45
- )}
46
- </>
47
- );
48
- };
49
-
50
- /**
51
- * This story showcases the detection of click away inside a nested React portal tree (i.e. not nested in the DOM)
52
- */
53
- export const NestedClickAway = () => (
54
- <>
55
- <p>Clicking inside a level should close all child levels but not parent levels</p>
56
- <ButtonWithCard level={0} />
57
- </>
58
- );
@@ -1,65 +0,0 @@
1
- import React, { createContext, RefObject, useContext, useEffect, useMemo, useRef } from 'react';
2
- import { ClickAwayParameters, useClickAway } from '@lumx/react/hooks/useClickAway';
3
-
4
- interface ContextValue {
5
- childrenRefs: Array<RefObject<HTMLElement>>;
6
- addRefs(...newChildrenRefs: Array<RefObject<HTMLElement>>): void;
7
- }
8
-
9
- const ClickAwayAncestorContext = createContext<ContextValue | null>(null);
10
-
11
- interface ClickAwayProviderProps extends ClickAwayParameters {
12
- /**
13
- * (Optional) Element that should be considered as part of the parent
14
- */
15
- parentRef?: RefObject<HTMLElement>;
16
- }
17
-
18
- /**
19
- * Component combining the `useClickAway` hook with a React context to hook into the React component tree and make sure
20
- * we take into account both the DOM tree and the React tree to detect click away.
21
- *
22
- * @return the react component.
23
- */
24
- export const ClickAwayProvider: React.FC<ClickAwayProviderProps> = ({
25
- children,
26
- callback,
27
- childrenRefs,
28
- parentRef,
29
- }) => {
30
- const parentContext = useContext(ClickAwayAncestorContext);
31
- const currentContext = useMemo(() => {
32
- const context: ContextValue = {
33
- childrenRefs: [],
34
- /**
35
- * Add element refs to the current context and propagate to the parent context.
36
- */
37
- addRefs(...newChildrenRefs) {
38
- // Add element refs that should be considered as inside the click away context.
39
- context.childrenRefs.push(...newChildrenRefs);
40
-
41
- if (parentContext) {
42
- // Also add then to the parent context
43
- parentContext.addRefs(...newChildrenRefs);
44
- if (parentRef) {
45
- // The parent element is also considered as inside the parent click away context but not inside the current context
46
- parentContext.addRefs(parentRef);
47
- }
48
- }
49
- },
50
- };
51
- return context;
52
- }, [parentContext, parentRef]);
53
-
54
- useEffect(() => {
55
- const { current: currentRefs } = childrenRefs;
56
- if (!currentRefs) {
57
- return;
58
- }
59
- currentContext.addRefs(...currentRefs);
60
- }, [currentContext, childrenRefs]);
61
-
62
- useClickAway({ callback, childrenRefs: useRef(currentContext.childrenRefs) });
63
- return <ClickAwayAncestorContext.Provider value={currentContext}>{children}</ClickAwayAncestorContext.Provider>;
64
- };
65
- ClickAwayProvider.displayName = 'ClickAwayProvider';
@@ -1 +0,0 @@
1
- export * from './ClickAwayProvider';
@@ -1,54 +0,0 @@
1
- import React, { useCallback, useState } from 'react';
2
- import { Switch } from '@lumx/react/components/switch';
3
- import { Alignment } from '@lumx/react';
4
-
5
- // Global state used to
6
- const globalState = {
7
- isEnabled: false,
8
- styleSheet: null as any,
9
- };
10
-
11
- /** Toggle apply the material CSS override. */
12
- async function toggleMaterialTheme(wasEnabled: boolean) {
13
- globalState.isEnabled = !wasEnabled;
14
-
15
- // Inject the material theme CSS file.
16
- if (!globalState.styleSheet) {
17
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
- // @ts-ignore
19
- const cssCode = await import('!!raw-loader!@lumx/core/css/material.css');
20
-
21
- // Inject CSS override in a <style> node in <head>
22
- const style = document.createElement('style');
23
- style.textContent = cssCode.default;
24
- document.head.appendChild(style);
25
-
26
- globalState.styleSheet = style.sheet;
27
- }
28
- // Disable/Enable stylesheet
29
- globalState.styleSheet.disabled = !globalState.isEnabled;
30
- }
31
-
32
- export const MaterialThemeSwitcher: React.FC<any> = ({ theme }) => {
33
- const [isEnabled, setEnabled] = useState(globalState.isEnabled);
34
- const toggleTheme = useCallback(
35
- () =>
36
- setEnabled((wasEnabled) => {
37
- toggleMaterialTheme(wasEnabled);
38
- return !wasEnabled;
39
- }),
40
- [],
41
- );
42
-
43
- return (
44
- <Switch
45
- className="material-theme-switcher"
46
- isChecked={isEnabled}
47
- onChange={toggleTheme}
48
- position={Alignment.right}
49
- theme={theme}
50
- >
51
- Material theme
52
- </Switch>
53
- );
54
- };
@@ -1 +0,0 @@
1
- export * from './MaterialThemeSwitcher';
@@ -1,24 +0,0 @@
1
- import { browserDoesNotSupportHover } from '@lumx/react/utils/browserDoesNotSupportHover';
2
-
3
- const originalMatchMedia = global.matchMedia;
4
-
5
- describe('browserDoesNotSupportHover', () => {
6
- afterAll(() => {
7
- global.matchMedia = originalMatchMedia;
8
- });
9
-
10
- it('should return `false` on browsers that do not support matchMedia', () => {
11
- global.matchMedia = undefined;
12
- expect(browserDoesNotSupportHover()).toBe(false);
13
- });
14
-
15
- it('should return `false` on browsers that support matchMedia and does support hover', () => {
16
- global.matchMedia = () => ({ matches: false });
17
- expect(browserDoesNotSupportHover()).toBe(false);
18
- });
19
-
20
- it('should return `true` on browsers that support matchMedia and does not support hover', () => {
21
- global.matchMedia = () => ({ matches: true });
22
- expect(browserDoesNotSupportHover()).toBe(true);
23
- });
24
- });
@@ -1,2 +0,0 @@
1
- /** Return true if the browser does not support pointer hover */
2
- export const browserDoesNotSupportHover = (): boolean => !!window.matchMedia?.('(hover: none)').matches;
@@ -1,17 +0,0 @@
1
- /**
2
- * Clamp value in range.
3
- *
4
- * @param value Value to clamp.
5
- * @param min Minimum value.
6
- * @param max Maximum value.
7
- * @return Clamped value.
8
- */
9
- export const clamp = (value: number, min: number, max: number): number => {
10
- if (value < min) {
11
- return min;
12
- }
13
- if (value > max) {
14
- return max;
15
- }
16
- return value;
17
- };
@@ -1,44 +0,0 @@
1
- import { CSS_PREFIX } from '@lumx/react/constants';
2
-
3
- import kebabCase from 'lodash/kebabCase';
4
- import { ColorPalette, ColorVariant, Typography } from '@lumx/react/components';
5
-
6
- // See https://regex101.com/r/YjS1uI/3
7
- const LAST_PART_CLASSNAME = /^(.*)-(.+)$/gi;
8
-
9
- export { getBasicClass, handleBasicClasses } from '@lumx/core/js/utils';
10
-
11
- /**
12
- * Get the name of the root CSS class of a component based on its name.
13
- *
14
- * @param componentName The name of the component. This name should contains the component prefix and be
15
- * written in PascalCase.
16
- * @param subComponent Whether the current component is a sub component, if true, define the class according
17
- * to BEM standards.
18
- * @return The name of the root CSS class. This classname include the CSS classname prefix and is written in
19
- * lower-snake-case.
20
- */
21
- export function getRootClassName(componentName: string, subComponent?: boolean): string {
22
- const formattedClassName = `${CSS_PREFIX}-${kebabCase(componentName)}`;
23
-
24
- if (subComponent) {
25
- return formattedClassName.replace(LAST_PART_CLASSNAME, '$1__$2');
26
- }
27
- return formattedClassName;
28
- }
29
-
30
- /**
31
- * Returns the classname associated to the given color and variant.
32
- * For example, for 'dark' and 'L2' it returns `lumx-color-font-dark-l2`
33
- */
34
- export const getFontColorClassName = (color: ColorPalette, colorVariant: ColorVariant = ColorVariant.N) => {
35
- return `lumx-color-font-${color}-${colorVariant}`;
36
- };
37
-
38
- /**
39
- * Returns the classname associated to the given typography.
40
- * For example, for `Typography.title` it returns `lumx-typography-title`
41
- */
42
- export const getTypographyClassName = (typography: Typography) => {
43
- return `lumx-typography-${typography}`;
44
- };
@@ -1 +0,0 @@
1
- export { onEnterPressed, onButtonPressed, onEscapePressed } from '@lumx/core/js/utils';
@@ -1,58 +0,0 @@
1
- import { flattenChildren } from '@lumx/react/utils/flattenChildren';
2
- import { mount } from 'enzyme';
3
- import React from 'react';
4
-
5
- const Comp = ({ children }: any) => children;
6
-
7
- describe('flattenChildren', () => {
8
- it('should flatten children in arrays or fragments', () => {
9
- const nodes = (
10
- <Comp>
11
- {flattenChildren(
12
- <>
13
- <Comp>foo</Comp>
14
- {[
15
- <Comp key="1">bar</Comp>,
16
- <Comp key="2">{['baz', <Comp key="1">qux</Comp>]}</Comp>,
17
- ['quux', <Comp key="2">quuz</Comp>],
18
- ]}
19
- corge
20
- <>grault</>
21
- </>,
22
- )}
23
- </Comp>
24
- );
25
- expect(mount(nodes)).toMatchInlineSnapshot(`
26
- <Comp>
27
- <Comp
28
- key=".0..0"
29
- >
30
- foo
31
- </Comp>
32
- <Comp
33
- key=".0..1:$1"
34
- >
35
- bar
36
- </Comp>
37
- <Comp
38
- key=".0..1:$2"
39
- >
40
- baz
41
- <Comp
42
- key="1"
43
- >
44
- qux
45
- </Comp>
46
- </Comp>
47
- quux
48
- <Comp
49
- key=".0..1:2:$2"
50
- >
51
- quuz
52
- </Comp>
53
- corge
54
- grault
55
- </Comp>
56
- `);
57
- });
58
- });
@@ -1,27 +0,0 @@
1
- import get from 'lodash/get';
2
- import { Children, Key, ReactChild, ReactNode, cloneElement, isValidElement } from 'react';
3
- import { isFragment } from 'react-is';
4
-
5
- /**
6
- * Flatten list of react nodes removing fragments and adding keys.
7
- * based on: https://github.com/grrowl/react-keyed-flatten-children/blob/5d421644a449765ddd62b659946196b4b5d7b135/index.ts
8
- *
9
- * @param children React nodes to flatten.
10
- * @return Flattened react nodes.
11
- */
12
- export function flattenChildren(children: ReactNode) {
13
- function recur(nodes: ReactNode, keys: Key[] = []) {
14
- return Children.toArray(nodes).reduce((acc: ReactChild[], node, index) => {
15
- const nodeKeys = keys.concat(get(node, 'key') ?? index);
16
- if (isFragment(node)) {
17
- acc.push(...recur(node.props.children, nodeKeys));
18
- } else if (isValidElement(node)) {
19
- acc.push(cloneElement(node, { key: nodeKeys.join('.') }));
20
- } else if (typeof node === 'string' || typeof node === 'number') {
21
- acc.push(node);
22
- }
23
- return acc;
24
- }, []);
25
- }
26
- return recur(children);
27
- }
@@ -1,5 +0,0 @@
1
- /** CSS selector listing all tabbable elements. */
2
- export const TABBABLE_ELEMENTS_SELECTOR = `a[href], button, textarea, input:not([type="hidden"]):not([hidden]), [tabindex]`;
3
-
4
- /** CSS selector matching element that are disabled (should not receive focus). */
5
- export const DISABLED_SELECTOR = `[hidden], [tabindex="-1"], [disabled]:not([disabled="false"]), [aria-disabled]:not([aria-disabled="false"])`;
@@ -1,134 +0,0 @@
1
- import { getFirstAndLastFocusable } from '@lumx/react/utils/focus/getFirstAndLastFocusable';
2
-
3
- function htmlToElement(html: string): any {
4
- const template = document.createElement('template');
5
- template.innerHTML = html.trim();
6
- return template.content.firstChild;
7
- }
8
-
9
- describe(getFirstAndLastFocusable.name, () => {
10
- it('should get empty', () => {
11
- const element = htmlToElement(`<div></div>`);
12
- const focusable = getFirstAndLastFocusable(element);
13
- expect(focusable).toEqual({});
14
- });
15
-
16
- it('should get single item', () => {
17
- const element = htmlToElement(`<div><button /></div>`);
18
- const focusable = getFirstAndLastFocusable(element);
19
- expect(focusable.last).toBe(focusable.first);
20
- });
21
-
22
- it('should get first and last', () => {
23
- const element = htmlToElement(`
24
- <div>
25
- <div>Non focusable div</div>
26
- <button>Simple button</button>
27
- <div>Non focusable div</div>
28
- <input />
29
- <div>Non focusable div</div>
30
- </div>
31
- `);
32
- const focusable = getFirstAndLastFocusable(element);
33
- expect(focusable.first).toMatchInlineSnapshot(`
34
- <button>
35
- Simple button
36
- </button>
37
- `);
38
- expect(focusable.first).toMatchInlineSnapshot(`
39
- <button>
40
- Simple button
41
- </button>
42
- `);
43
- });
44
-
45
- describe('match focusable elements', () => {
46
- it('should match input element', () => {
47
- const element = htmlToElement(`<div><input /></div>`);
48
- const focusable = getFirstAndLastFocusable(element);
49
- expect(focusable.first).toMatchInlineSnapshot(`<input />`);
50
- });
51
-
52
- it('should match link element', () => {
53
- const element = htmlToElement(`<div><a href="#" /></div>`);
54
- const focusable = getFirstAndLastFocusable(element);
55
- expect(focusable.first).toMatchInlineSnapshot(`
56
- <a
57
- href="#"
58
- />
59
- `);
60
- });
61
-
62
- it('should match textarea element', () => {
63
- const element = htmlToElement(`<div><textarea /></div>`);
64
- const focusable = getFirstAndLastFocusable(element);
65
- expect(focusable.first).toMatchInlineSnapshot(`
66
- <textarea>
67
- &lt;/div&gt;
68
- </textarea>
69
- `);
70
- });
71
-
72
- it('should match element with tabindex', () => {
73
- const element = htmlToElement(`<div><span tabindex="0" /></div>`);
74
- const focusable = getFirstAndLastFocusable(element);
75
- expect(focusable.first).toMatchInlineSnapshot(`
76
- <span
77
- tabindex="0"
78
- />
79
- `);
80
- });
81
-
82
- it('should keep disabled=false', () => {
83
- const element = htmlToElement(`<div><button disabled="false" /><button /></div>`);
84
- const focusable = getFirstAndLastFocusable(element);
85
- expect(focusable.first).toMatchInlineSnapshot(`
86
- <button
87
- disabled="false"
88
- />
89
- `);
90
- });
91
-
92
- it('should keep aria-disabled=false', () => {
93
- const element = htmlToElement(`<div><button aria-disabled="false" /><button /></div>`);
94
- const focusable = getFirstAndLastFocusable(element);
95
- expect(focusable.first).toMatchInlineSnapshot(`
96
- <button
97
- aria-disabled="false"
98
- />
99
- `);
100
- });
101
- });
102
-
103
- describe('skip disabled elements', () => {
104
- it('should skip disabled', () => {
105
- const element = htmlToElement(`<div><button disabled /><button /></div>`);
106
- const focusable = getFirstAndLastFocusable(element);
107
- expect(focusable.first).toMatchInlineSnapshot(`<button />`);
108
- });
109
-
110
- it('should skip aria-disabled', () => {
111
- const element = htmlToElement(`<div><button aria-disabled /><button /></div>`);
112
- const focusable = getFirstAndLastFocusable(element);
113
- expect(focusable.first).toMatchInlineSnapshot(`<button />`);
114
- });
115
-
116
- it('should skip tabindex=-1', () => {
117
- const element = htmlToElement(`<div><button tabindex="-1" /><button /></div>`);
118
- const focusable = getFirstAndLastFocusable(element);
119
- expect(focusable.first).toMatchInlineSnapshot(`<button />`);
120
- });
121
-
122
- it('should skip input type hidden', () => {
123
- const element = htmlToElement(`<div><input type="hidden" /><button /></div>`);
124
- const focusable = getFirstAndLastFocusable(element);
125
- expect(focusable.first).toMatchInlineSnapshot(`<button />`);
126
- });
127
-
128
- it('should skip hidden input', () => {
129
- const element = htmlToElement(`<div><input hidden /><button /></div>`);
130
- const focusable = getFirstAndLastFocusable(element);
131
- expect(focusable.first).toMatchInlineSnapshot(`<button />`);
132
- });
133
- });
134
- });
@@ -1,21 +0,0 @@
1
- import { getFocusableElements } from './getFocusableElements';
2
-
3
- /**
4
- * Get first and last elements focusable in an element.
5
- *
6
- * @param parentElement The element in which to search focusable elements.
7
- * @return first and last focusable elements
8
- */
9
- export function getFirstAndLastFocusable(parentElement: HTMLElement) {
10
- const focusableElements = getFocusableElements(parentElement);
11
-
12
- // First non disabled element.
13
- const first = focusableElements[0];
14
- // Last non disabled element.
15
- const last = focusableElements[focusableElements.length - 1];
16
-
17
- if (last && first) {
18
- return { first, last };
19
- }
20
- return {};
21
- }