@lumx/react 2.1.0-alpha.12 → 2.1.0-alpha.15

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 (228) hide show
  1. package/esm/_internal/AlertDialog.js +2 -1
  2. package/esm/_internal/AlertDialog.js.map +1 -1
  3. package/esm/_internal/AutocompleteMultiple.js +2 -1
  4. package/esm/_internal/AutocompleteMultiple.js.map +1 -1
  5. package/esm/_internal/Avatar2.js +2 -1
  6. package/esm/_internal/Avatar2.js.map +1 -1
  7. package/esm/_internal/Badge2.js +2 -1
  8. package/esm/_internal/Badge2.js.map +1 -1
  9. package/esm/_internal/Button2.js +2 -1
  10. package/esm/_internal/Button2.js.map +1 -1
  11. package/esm/_internal/ButtonGroup.js +2 -1
  12. package/esm/_internal/ButtonGroup.js.map +1 -1
  13. package/esm/_internal/ButtonRoot.js +2 -1
  14. package/esm/_internal/ButtonRoot.js.map +1 -1
  15. package/esm/_internal/Checkbox2.js +2 -1
  16. package/esm/_internal/Checkbox2.js.map +1 -1
  17. package/esm/_internal/Chip2.js +2 -1
  18. package/esm/_internal/Chip2.js.map +1 -1
  19. package/esm/_internal/ChipGroup.js +2 -1
  20. package/esm/_internal/ChipGroup.js.map +1 -1
  21. package/esm/_internal/ClickAwayProvider.js +2 -1
  22. package/esm/_internal/ClickAwayProvider.js.map +1 -1
  23. package/esm/_internal/CommentBlock.js +2 -1
  24. package/esm/_internal/CommentBlock.js.map +1 -1
  25. package/esm/_internal/DatePickerField.js +2 -1
  26. package/esm/_internal/DatePickerField.js.map +1 -1
  27. package/esm/_internal/Dialog2.js +13 -4
  28. package/esm/_internal/Dialog2.js.map +1 -1
  29. package/esm/_internal/Divider2.js +2 -1
  30. package/esm/_internal/Divider2.js.map +1 -1
  31. package/esm/_internal/DragHandle.js +2 -1
  32. package/esm/_internal/DragHandle.js.map +1 -1
  33. package/esm/_internal/Dropdown2.js +9 -3
  34. package/esm/_internal/Dropdown2.js.map +1 -1
  35. package/esm/_internal/ExpansionPanel.js +2 -1
  36. package/esm/_internal/ExpansionPanel.js.map +1 -1
  37. package/esm/_internal/Flag2.js +2 -1
  38. package/esm/_internal/Flag2.js.map +1 -1
  39. package/esm/_internal/FlexBox.js +2 -1
  40. package/esm/_internal/FlexBox.js.map +1 -1
  41. package/esm/_internal/GridItem.js +2 -1
  42. package/esm/_internal/GridItem.js.map +1 -1
  43. package/esm/_internal/Icon2.js +2 -1
  44. package/esm/_internal/Icon2.js.map +1 -1
  45. package/esm/_internal/IconButton.js +2 -1
  46. package/esm/_internal/IconButton.js.map +1 -1
  47. package/esm/_internal/ImageBlock.js +2 -1
  48. package/esm/_internal/ImageBlock.js.map +1 -1
  49. package/esm/_internal/InputHelper.js +2 -1
  50. package/esm/_internal/InputHelper.js.map +1 -1
  51. package/esm/_internal/InputLabel.js +2 -1
  52. package/esm/_internal/InputLabel.js.map +1 -1
  53. package/esm/_internal/Lightbox2.js +2 -1
  54. package/esm/_internal/Lightbox2.js.map +1 -1
  55. package/esm/_internal/Link2.js +8 -1
  56. package/esm/_internal/Link2.js.map +1 -1
  57. package/esm/_internal/LinkPreview.js +2 -1
  58. package/esm/_internal/LinkPreview.js.map +1 -1
  59. package/esm/_internal/List2.js +2 -1
  60. package/esm/_internal/List2.js.map +1 -1
  61. package/esm/_internal/ListSubheader.js +2 -1
  62. package/esm/_internal/ListSubheader.js.map +1 -1
  63. package/esm/_internal/Message2.js +2 -1
  64. package/esm/_internal/Message2.js.map +1 -1
  65. package/esm/_internal/Mosaic2.js +2 -1
  66. package/esm/_internal/Mosaic2.js.map +1 -1
  67. package/esm/_internal/Notification2.js +2 -1
  68. package/esm/_internal/Notification2.js.map +1 -1
  69. package/esm/_internal/Popover2.js +2 -1
  70. package/esm/_internal/Popover2.js.map +1 -1
  71. package/esm/_internal/PostBlock.js +2 -1
  72. package/esm/_internal/PostBlock.js.map +1 -1
  73. package/esm/_internal/Progress2.js +2 -1
  74. package/esm/_internal/Progress2.js.map +1 -1
  75. package/esm/_internal/ProgressTrackerStepPanel.js +2 -1
  76. package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -1
  77. package/esm/_internal/RadioGroup.js +2 -1
  78. package/esm/_internal/RadioGroup.js.map +1 -1
  79. package/esm/_internal/SelectMultiple.js +2 -1
  80. package/esm/_internal/SelectMultiple.js.map +1 -1
  81. package/esm/_internal/SideNavigationItem.js +2 -1
  82. package/esm/_internal/SideNavigationItem.js.map +1 -1
  83. package/esm/_internal/SkeletonTypography.js +2 -1
  84. package/esm/_internal/SkeletonTypography.js.map +1 -1
  85. package/esm/_internal/Slider2.js +2 -1
  86. package/esm/_internal/Slider2.js.map +1 -1
  87. package/esm/_internal/SlideshowControls.js +2 -1
  88. package/esm/_internal/SlideshowControls.js.map +1 -1
  89. package/esm/_internal/Switch2.js +2 -1
  90. package/esm/_internal/Switch2.js.map +1 -1
  91. package/esm/_internal/TabPanel.js +2 -1
  92. package/esm/_internal/TabPanel.js.map +1 -1
  93. package/esm/_internal/TableRow.js +2 -1
  94. package/esm/_internal/TableRow.js.map +1 -1
  95. package/esm/_internal/TextField.js +2 -1
  96. package/esm/_internal/TextField.js.map +1 -1
  97. package/esm/_internal/Thumbnail2.js +2 -1
  98. package/esm/_internal/Thumbnail2.js.map +1 -1
  99. package/esm/_internal/Toolbar2.js +2 -1
  100. package/esm/_internal/Toolbar2.js.map +1 -1
  101. package/esm/_internal/Tooltip2.js +2 -1
  102. package/esm/_internal/Tooltip2.js.map +1 -1
  103. package/esm/_internal/Uploader2.js +2 -1
  104. package/esm/_internal/Uploader2.js.map +1 -1
  105. package/esm/_internal/UserBlock.js +2 -1
  106. package/esm/_internal/UserBlock.js.map +1 -1
  107. package/esm/_internal/_rollupPluginBabelHelpers.js +167 -0
  108. package/esm/_internal/_rollupPluginBabelHelpers.js.map +1 -0
  109. package/esm/_internal/alert-dialog.js +3 -1
  110. package/esm/_internal/alert-dialog.js.map +1 -1
  111. package/esm/_internal/autocomplete.js +2 -1
  112. package/esm/_internal/autocomplete.js.map +1 -1
  113. package/esm/_internal/avatar.js +2 -1
  114. package/esm/_internal/avatar.js.map +1 -1
  115. package/esm/_internal/badge.js +2 -1
  116. package/esm/_internal/badge.js.map +1 -1
  117. package/esm/_internal/button.js +2 -1
  118. package/esm/_internal/button.js.map +1 -1
  119. package/esm/_internal/checkbox.js +2 -1
  120. package/esm/_internal/checkbox.js.map +1 -1
  121. package/esm/_internal/chip.js +2 -1
  122. package/esm/_internal/chip.js.map +1 -1
  123. package/esm/_internal/comment-block.js +2 -1
  124. package/esm/_internal/comment-block.js.map +1 -1
  125. package/esm/_internal/components.js +48 -3
  126. package/esm/_internal/components.js.map +1 -1
  127. package/esm/_internal/date-picker.js +2 -1
  128. package/esm/_internal/date-picker.js.map +1 -1
  129. package/esm/_internal/dialog.js +3 -1
  130. package/esm/_internal/dialog.js.map +1 -1
  131. package/esm/_internal/divider.js +2 -1
  132. package/esm/_internal/divider.js.map +1 -1
  133. package/esm/_internal/drag-handle.js +2 -1
  134. package/esm/_internal/drag-handle.js.map +1 -1
  135. package/esm/_internal/dropdown.js +2 -1
  136. package/esm/_internal/dropdown.js.map +1 -1
  137. package/esm/_internal/expansion-panel.js +2 -1
  138. package/esm/_internal/expansion-panel.js.map +1 -1
  139. package/esm/_internal/flag.js +2 -1
  140. package/esm/_internal/flag.js.map +1 -1
  141. package/esm/_internal/flex-box.js +2 -1
  142. package/esm/_internal/flex-box.js.map +1 -1
  143. package/esm/_internal/getRootClassName.js +2 -166
  144. package/esm/_internal/getRootClassName.js.map +1 -1
  145. package/esm/_internal/grid.js +2 -1
  146. package/esm/_internal/grid.js.map +1 -1
  147. package/esm/_internal/icon.js +2 -1
  148. package/esm/_internal/icon.js.map +1 -1
  149. package/esm/_internal/image-block.js +2 -1
  150. package/esm/_internal/image-block.js.map +1 -1
  151. package/esm/_internal/input-helper.js +2 -1
  152. package/esm/_internal/input-helper.js.map +1 -1
  153. package/esm/_internal/input-label.js +2 -1
  154. package/esm/_internal/input-label.js.map +1 -1
  155. package/esm/_internal/lightbox.js +2 -1
  156. package/esm/_internal/lightbox.js.map +1 -1
  157. package/esm/_internal/link-preview.js +2 -1
  158. package/esm/_internal/link-preview.js.map +1 -1
  159. package/esm/_internal/link.js +2 -1
  160. package/esm/_internal/link.js.map +1 -1
  161. package/esm/_internal/list.js +2 -1
  162. package/esm/_internal/list.js.map +1 -1
  163. package/esm/_internal/message.js +2 -1
  164. package/esm/_internal/message.js.map +1 -1
  165. package/esm/_internal/mosaic.js +2 -1
  166. package/esm/_internal/mosaic.js.map +1 -1
  167. package/esm/_internal/notification.js +2 -1
  168. package/esm/_internal/notification.js.map +1 -1
  169. package/esm/_internal/popover.js +2 -1
  170. package/esm/_internal/popover.js.map +1 -1
  171. package/esm/_internal/post-block.js +2 -1
  172. package/esm/_internal/post-block.js.map +1 -1
  173. package/esm/_internal/progress-tracker.js +2 -1
  174. package/esm/_internal/progress-tracker.js.map +1 -1
  175. package/esm/_internal/progress.js +2 -1
  176. package/esm/_internal/progress.js.map +1 -1
  177. package/esm/_internal/radio-button.js +2 -1
  178. package/esm/_internal/radio-button.js.map +1 -1
  179. package/esm/_internal/renderLink.js +1 -1
  180. package/esm/_internal/select.js +2 -1
  181. package/esm/_internal/select.js.map +1 -1
  182. package/esm/_internal/side-navigation.js +2 -1
  183. package/esm/_internal/side-navigation.js.map +1 -1
  184. package/esm/_internal/skeleton.js +2 -1
  185. package/esm/_internal/skeleton.js.map +1 -1
  186. package/esm/_internal/slider.js +2 -1
  187. package/esm/_internal/slider.js.map +1 -1
  188. package/esm/_internal/slideshow.js +2 -1
  189. package/esm/_internal/slideshow.js.map +1 -1
  190. package/esm/_internal/switch.js +2 -1
  191. package/esm/_internal/switch.js.map +1 -1
  192. package/esm/_internal/table.js +2 -1
  193. package/esm/_internal/table.js.map +1 -1
  194. package/esm/_internal/tabs.js +2 -1
  195. package/esm/_internal/tabs.js.map +1 -1
  196. package/esm/_internal/text-field.js +2 -1
  197. package/esm/_internal/text-field.js.map +1 -1
  198. package/esm/_internal/thumbnail.js +2 -1
  199. package/esm/_internal/thumbnail.js.map +1 -1
  200. package/esm/_internal/toolbar.js +2 -1
  201. package/esm/_internal/toolbar.js.map +1 -1
  202. package/esm/_internal/tooltip.js +2 -1
  203. package/esm/_internal/tooltip.js.map +1 -1
  204. package/esm/_internal/types.js +1 -1
  205. package/esm/_internal/uploader.js +2 -1
  206. package/esm/_internal/uploader.js.map +1 -1
  207. package/esm/_internal/useDelayedVisibility.js +1 -1
  208. package/esm/_internal/useDisableBodyScroll.js +9 -1
  209. package/esm/_internal/useDisableBodyScroll.js.map +1 -1
  210. package/esm/_internal/useRovingTabIndex.js +1 -1
  211. package/esm/_internal/user-block.js +2 -1
  212. package/esm/_internal/user-block.js.map +1 -1
  213. package/esm/index.js +3 -2
  214. package/esm/index.js.map +1 -1
  215. package/package.json +4 -4
  216. package/src/components/dialog/Dialog.tsx +9 -3
  217. package/src/components/dropdown/Dropdown.tsx +1 -0
  218. package/src/components/dropdown/__snapshots__/Dropdown.test.tsx.snap +1 -1
  219. package/src/components/index.ts +46 -3
  220. package/src/components/link/Link.stories.tsx +24 -8
  221. package/src/components/link/Link.tsx +8 -2
  222. package/src/components/skeleton/SkeletonRectangle.stories.tsx +1 -1
  223. package/src/components/skeleton/SkeletonRectangle.tsx +1 -1
  224. package/src/components/skeleton/SkeletonTypography.tsx +2 -2
  225. package/src/components/skeleton/__snapshots__/SkeletonRectangle.test.tsx.snap +7 -0
  226. package/src/hooks/useDisableBodyScroll.ts +9 -1
  227. package/src/hooks/useInfiniteScroll.tsx +14 -3
  228. package/types.d.ts +68 -5
@@ -1,4 +1,4 @@
1
- import { a as _objectWithoutProperties } from './getRootClassName.js';
1
+ import { b as _objectWithoutProperties } from './_rollupPluginBabelHelpers.js';
2
2
  import React from 'react';
3
3
 
4
4
  /**
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import '../index2.js';
6
7
  import 'lodash/isBoolean';
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import '../index2.js';
6
7
  import 'lodash/isBoolean';
@@ -1 +1 @@
1
- {"version":3,"file":"side-navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"side-navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import 'lodash/isBoolean';
5
6
  import 'lodash/isEmpty';
6
7
  import 'lodash/kebabCase';
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"skeleton.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import '../index2.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"slider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import '../index2.js';
6
7
  import 'lodash/isBoolean';
@@ -1 +1 @@
1
- {"version":3,"file":"slideshow.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"slideshow.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import '../index2.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"switch.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"table.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import '../index2.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import '../index2.js';
6
7
  import 'lodash/isBoolean';
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"text-field.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"thumbnail.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -1,5 +1,6 @@
1
- import './getRootClassName.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
+ import './getRootClassName.js';
3
4
  import 'lodash/isBoolean';
4
5
  import 'lodash/isEmpty';
5
6
  import 'lodash/kebabCase';
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"toolbar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,5 +1,6 @@
1
- import './getRootClassName.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
+ import './getRootClassName.js';
3
4
  import '../index2.js';
4
5
  import 'lodash/isBoolean';
5
6
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tooltip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
+ import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
1
2
  import { AspectRatio } from './components.js';
2
- import { c as _objectSpread2 } from './getRootClassName.js';
3
3
 
4
4
  /**
5
5
  * All available aspect ratios.
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import 'lodash/isBoolean';
5
6
  import 'lodash/isEmpty';
6
7
  import 'lodash/kebabCase';
@@ -1 +1 @@
1
- {"version":3,"file":"uploader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"uploader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { f as _slicedToArray } from './getRootClassName.js';
1
+ import { d as _slicedToArray } from './_rollupPluginBabelHelpers.js';
2
2
  import { useState, useEffect, useRef } from 'react';
3
3
 
4
4
  /**
@@ -190,6 +190,12 @@ var enableBodyScroll = function enableBodyScroll(targetElement) {
190
190
  }
191
191
  };
192
192
 
193
+ /**
194
+ * Disables the scroll on the body to make it only usable in the current modal element.
195
+ * When the modal element is not provided anymore, the scroll is restored.
196
+ *
197
+ * @param modalElement The modal element.
198
+ */
193
199
  var useDisableBodyScroll = function useDisableBodyScroll(modalElement) {
194
200
  useEffect(function () {
195
201
  if (!modalElement) {
@@ -203,7 +209,9 @@ var useDisableBodyScroll = function useDisableBodyScroll(modalElement) {
203
209
  return function () {
204
210
  enableBodyScroll(modalElement); // Restore the previous overflow style.
205
211
 
206
- document.documentElement.style.overflow = previousDocumentOverflow;
212
+ requestAnimationFrame(function () {
213
+ document.documentElement.style.overflow = previousDocumentOverflow;
214
+ });
207
215
  };
208
216
  }, [modalElement]);
209
217
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDisableBodyScroll.js","sources":["../../../../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","../../../src/hooks/useDisableBodyScroll.ts"],"sourcesContent":["function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","import { useEffect } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { Falsy } from '@lumx/react/utils';\n\nexport const useDisableBodyScroll = (modalElement: Element | Falsy): void => {\n useEffect(() => {\n if (!modalElement) {\n return undefined;\n }\n // Fixing the document overflow style to prevent a bug that scrolls the window to the top.\n const previousDocumentOverflow = document.documentElement.style.overflow;\n document.documentElement.style.overflow = 'visible';\n disableBodyScroll(modalElement);\n return () => {\n enableBodyScroll(modalElement);\n // Restore the previous overflow style.\n document.documentElement.style.overflow = previousDocumentOverflow;\n };\n }, [modalElement]);\n};\n"],"names":["useDisableBodyScroll","modalElement","useEffect","undefined","previousDocumentOverflow","document","documentElement","style","overflow","disableBodyScroll","enableBodyScroll"],"mappings":"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"}
1
+ {"version":3,"file":"useDisableBodyScroll.js","sources":["../../../../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","../../../src/hooks/useDisableBodyScroll.ts"],"sourcesContent":["function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","import { useEffect } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { Falsy } from '@lumx/react/utils';\n\n/**\n * Disables the scroll on the body to make it only usable in the current modal element.\n * When the modal element is not provided anymore, the scroll is restored.\n *\n * @param modalElement The modal element.\n */\nexport const useDisableBodyScroll = (modalElement: Element | Falsy): void => {\n useEffect(() => {\n if (!modalElement) {\n return undefined;\n }\n // Fixing the document overflow style to prevent a bug that scrolls the window to the top.\n const previousDocumentOverflow = document.documentElement.style.overflow;\n document.documentElement.style.overflow = 'visible';\n disableBodyScroll(modalElement);\n return () => {\n enableBodyScroll(modalElement);\n // Restore the previous overflow style.\n requestAnimationFrame(() => {\n document.documentElement.style.overflow = previousDocumentOverflow;\n });\n };\n }, [modalElement]);\n};\n"],"names":["useDisableBodyScroll","modalElement","useEffect","undefined","previousDocumentOverflow","document","documentElement","style","overflow","disableBodyScroll","enableBodyScroll","requestAnimationFrame"],"mappings":";;AAAA,SAAS,kBAAkB,CAAC,GAAG,EAAE,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE;AACnM;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACnC,EAAE,IAAI,kBAAkB,GAAG;AAC3B,IAAI,IAAI,OAAO,GAAG;AAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,SAAS,CAAC;AACvB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACnE,EAAE,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACtE,CAAC;AACD;AACA,IAAI,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AAC1O;AACA;AACA,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;AACxB,IAAI,2BAA2B,GAAG,KAAK,CAAC,CAAC;AACzC,IAAI,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACtC;AACA;AACA,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE;AACjD,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;AACpC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;AACxE,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,QAAQ,EAAE;AACvD,EAAE,IAAI,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AACxC;AACA,EAAE,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,OAAO,EAAE;AAC5D;AACA,EAAE,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAC9C,IAAI,IAAI,oBAAoB,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC;AACjF,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;AAChF;AACA,IAAI,IAAI,oBAAoB,IAAI,YAAY,GAAG,CAAC,EAAE;AAClD,MAAM,wBAAwB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC;AAC7D,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,2BAA2B,KAAK,SAAS,EAAE;AACjD,IAAI,2BAA2B,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/D,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5C,GAAG;AACH,CAAC,CAAC;AACF;AACA,IAAI,sBAAsB,GAAG,SAAS,sBAAsB,GAAG;AAC/D,EAAE,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,wBAAwB,CAAC;AAChE;AACA;AACA;AACA,IAAI,wBAAwB,GAAG,SAAS,CAAC;AACzC,GAAG;AACH;AACA,EAAE,IAAI,2BAA2B,KAAK,SAAS,EAAE;AACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,2BAA2B,CAAC;AAC/D;AACA;AACA;AACA,IAAI,2BAA2B,GAAG,SAAS,CAAC;AAC5C,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,IAAI,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,aAAa,EAAE;AAC5F,EAAE,OAAO,aAAa,GAAG,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC;AACpH,CAAC,CAAC;AACF;AACA,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE;AAC/D,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC;AAChE;AACA,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACpC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;AACrE;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,IAAI,8BAA8B,CAAC,aAAa,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;AACpE;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAC1B,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACO,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE;AAClF;AACA,EAAE,IAAI,CAAC,aAAa,EAAE;AACtB;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,gHAAgH,CAAC,CAAC;AACpI,IAAI,OAAO;AACX,GAAG;AACH;AACA;AACA,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;AACjC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC;AAChD,GAAG,CAAC,EAAE;AACN,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,OAAO,EAAE,OAAO,IAAI,EAAE;AAC1B,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD;AACA,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,aAAa,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAClD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C;AACA,QAAQ,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,OAAO;AACP,KAAK,CAAC;AACN,IAAI,aAAa,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE;AACjD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C;AACA,QAAQ,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAChC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;AAChH,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,KAAK;AACL,GAAG,MAAM;AACT,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC/B,GAAG;AACH,CAAC,CAAC;AAuBF;AACO,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,aAAa,EAAE;AACvE,EAAE,IAAI,CAAC,aAAa,EAAE;AACtB;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,8GAA8G,CAAC,CAAC;AAClI,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC;AAChD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;AACtC,IAAI,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC;AACA,IAAI,IAAI,qBAAqB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACrD,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;AACnH,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,KAAK;AACL,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC5B,IAAI,sBAAsB,EAAE,CAAC;AAC7B,GAAG;AACH,CAAC;;AC9MD;;;;;;IAMaA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,YAAD,EAAyC;AACzEC,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAI,CAACD,YAAL,EAAmB;AACf,aAAOE,SAAP;AACH,KAHW;;;AAKZ,QAAMC,wBAAwB,GAAGC,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,QAAhE;AACAH,IAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,QAA/B,GAA0C,SAA1C;AACAC,IAAAA,iBAAiB,CAACR,YAAD,CAAjB;AACA,WAAO,YAAM;AACTS,MAAAA,gBAAgB,CAACT,YAAD,CAAhB,CADS;;AAGTU,MAAAA,qBAAqB,CAAC,YAAM;AACxBN,QAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,QAA/B,GAA0CJ,wBAA1C;AACH,OAFoB,CAArB;AAGH,KAND;AAOH,GAfQ,EAeN,CAACH,YAAD,CAfM,CAAT;AAgBH;;;;"}
@@ -1,4 +1,4 @@
1
- import { i as _toConsumableArray, c as _objectSpread2, _ as _defineProperty, f as _slicedToArray } from './getRootClassName.js';
1
+ import { e as _toConsumableArray, _ as _objectSpread2, a as _defineProperty, d as _slicedToArray } from './_rollupPluginBabelHelpers.js';
2
2
  import { createContext, useContext, useMemo, useEffect, useCallback } from 'react';
3
3
  import { u as uid } from '../index2.js';
4
4
 
@@ -1,6 +1,7 @@
1
+ import './_rollupPluginBabelHelpers.js';
1
2
  import './components.js';
2
- import './getRootClassName.js';
3
3
  import 'react';
4
+ import './getRootClassName.js';
4
5
  import './mdi.js';
5
6
  import 'lodash/isBoolean';
6
7
  import 'lodash/isEmpty';
@@ -1 +1 @@
1
- {"version":3,"file":"user-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"user-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
package/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
- export { Alignment, AspectRatio, ColorPalette, ColorVariant, Emphasis, Kind, Orientation, Size, Theme, Typography } from './_internal/components.js';
2
- import './_internal/getRootClassName.js';
1
+ import './_internal/_rollupPluginBabelHelpers.js';
2
+ export { Alignment, AspectRatio, ColorPalette, ColorVariant, Emphasis, Kind, Orientation, Size, Theme, Typography, TypographyInterface, TypographyTitleCustom } from './_internal/components.js';
3
3
  import 'react';
4
+ import './_internal/getRootClassName.js';
4
5
  import './_internal/mdi.js';
5
6
  import './index2.js';
6
7
  import 'lodash/isBoolean';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@juggle/resize-observer": "^3.2.0",
10
- "@lumx/core": "^2.1.0-alpha.12",
11
- "@lumx/icons": "^2.1.0-alpha.12",
10
+ "@lumx/core": "^2.1.0-alpha.15",
11
+ "@lumx/icons": "^2.1.0-alpha.15",
12
12
  "@popperjs/core": "^2.5.4",
13
13
  "body-scroll-lock": "^3.1.5",
14
14
  "classnames": "^2.2.6",
@@ -123,9 +123,9 @@
123
123
  "storybook": "start-storybook -s ../site-demo/static/ -p 9000"
124
124
  },
125
125
  "sideEffects": false,
126
- "version": "2.1.0-alpha.12",
126
+ "version": "2.1.0-alpha.15",
127
127
  "resolutions": {
128
128
  "**/style-loader": "^1.0.0"
129
129
  },
130
- "gitHead": "b26e06ad9aa9a4735822bed70dfa58caeae3bd6f"
130
+ "gitHead": "a202d8df8a28773fca6fbe6fadffc15f40125f2e"
131
131
  }
@@ -18,6 +18,7 @@ import {
18
18
  partitionMulti,
19
19
  } from '@lumx/react/utils';
20
20
  import { ClickAwayProvider } from '@lumx/react/utils/ClickAwayProvider';
21
+ import { mergeRefs } from '@lumx/react/utils/mergeRefs';
21
22
 
22
23
  import { useDelayedVisibility } from '@lumx/react/hooks/useDelayedVisibility';
23
24
  import { useDisableBodyScroll } from '@lumx/react/hooks/useDisableBodyScroll';
@@ -129,13 +130,18 @@ export const Dialog: Comp<DialogProps, HTMLDivElement> = forwardRef((props, ref)
129
130
 
130
131
  // eslint-disable-next-line react-hooks/rules-of-hooks
131
132
  const wrapperRef = useRef<HTMLDivElement>(null);
132
-
133
+ /**
134
+ * Since the `contentRef` comes from the parent and is optional,
135
+ * we need to create a stable contentRef that will always be available.
136
+ */
137
+ // eslint-disable-next-line react-hooks/rules-of-hooks
138
+ const localContentRef = useRef<HTMLDivElement>(null);
133
139
  // Handle focus trap.
134
140
  // eslint-disable-next-line react-hooks/rules-of-hooks
135
141
  useFocusTrap(wrapperRef.current, focusElement?.current);
136
142
 
137
143
  // eslint-disable-next-line react-hooks/rules-of-hooks
138
- useDisableBodyScroll(isOpen && wrapperRef.current);
144
+ useDisableBodyScroll(isOpen && localContentRef.current);
139
145
 
140
146
  // eslint-disable-next-line react-hooks/rules-of-hooks
141
147
  const [sentinelTop, setSentinelTop] = useState<Element | null>(null);
@@ -203,7 +209,7 @@ export const Dialog: Comp<DialogProps, HTMLDivElement> = forwardRef((props, ref)
203
209
  </header>
204
210
  )}
205
211
 
206
- <div ref={contentRef} className={`${CLASSNAME}__content`}>
212
+ <div ref={mergeRefs(contentRef, localContentRef)} className={`${CLASSNAME}__content`}>
207
213
  <div
208
214
  className={`${CLASSNAME}__sentinel ${CLASSNAME}__sentinel--top`}
209
215
  ref={setSentinelTop}
@@ -149,6 +149,7 @@ export const Dropdown: Comp<DropdownProps, HTMLDivElement> = forwardRef((props,
149
149
  {...forwardedProps}
150
150
  anchorRef={anchorRef}
151
151
  className={classNames(className, handleBasicClasses({ prefix: CLASSNAME }))}
152
+ elevation={0 as any}
152
153
  closeOnClickAway={closeOnClickAway}
153
154
  closeOnEscape={closeOnEscape}
154
155
  fitToAnchorWidth={fitToAnchorWidth}
@@ -10,7 +10,7 @@ exports[`<Dropdown> Snapshots and structure should render correctly 1`] = `
10
10
  className="lumx-dropdown"
11
11
  closeOnClickAway={true}
12
12
  closeOnEscape={true}
13
- elevation={3}
13
+ elevation={0}
14
14
  fitToAnchorWidth={true}
15
15
  fitWithinViewportHeight={true}
16
16
  focusElement={
@@ -87,9 +87,9 @@ export const Emphasis = {
87
87
  export type Emphasis = ValueOf<typeof Emphasis>;
88
88
 
89
89
  /**
90
- * List of typographies.
90
+ * List of typographies that can't be customized.
91
91
  */
92
- export const Typography = {
92
+ export const TypographyInterface = {
93
93
  overline: 'overline',
94
94
  caption: 'caption',
95
95
  body1: 'body1',
@@ -100,16 +100,59 @@ export const Typography = {
100
100
  headline: 'headline',
101
101
  display1: 'display1',
102
102
  } as const;
103
- export type Typography = ValueOf<typeof Typography>;
103
+ export type TypographyInterface = ValueOf<typeof TypographyInterface>;
104
+
105
+ /**
106
+ * List of title typographies that can be customized (via CSS variables).
107
+ */
108
+ export const TypographyTitleCustom = {
109
+ title1: 'custom-title1',
110
+ title2: 'custom-title2',
111
+ title3: 'custom-title3',
112
+ title4: 'custom-title4',
113
+ title5: 'custom-title5',
114
+ title6: 'custom-title6',
115
+ } as const;
116
+ export type TypographyTitleCustom = ValueOf<typeof TypographyTitleCustom>;
117
+
118
+ /**
119
+ * List of typographies that can be customized (via CSS variables).
120
+ */
121
+ const TypographyCustom = {
122
+ ...TypographyTitleCustom,
123
+ intro: 'intro',
124
+ 'body-large': 'body-large',
125
+ body: 'body',
126
+ quote: 'quote',
127
+ 'publish-info': 'publish-info',
128
+ button: 'button',
129
+ } as const;
130
+ export type TypographyCustom = ValueOf<typeof TypographyCustom>;
131
+
132
+ /**
133
+ * List of all typographies.
134
+ */
135
+ export const Typography = {
136
+ ...TypographyInterface,
137
+ custom: TypographyCustom,
138
+ } as const;
139
+ export type Typography = TypographyInterface | TypographyCustom;
104
140
 
105
141
  /**
106
142
  * All available aspect ratios.
107
143
  */
108
144
  export const AspectRatio = {
145
+ /** Intrinsic content ratio. */
109
146
  original: 'original',
147
+ /** Ratio 16:9 */
148
+ wide: 'wide',
149
+ /** Ratio 3:2 */
110
150
  horizontal: 'horizontal',
151
+ /** Ratio 3:2 */
111
152
  vertical: 'vertical',
153
+ /** Ratio 1:1 */
112
154
  square: 'square',
155
+ /** Ratio constrained by the parent. */
113
156
  free: 'free',
114
157
  } as const;
115
158
  export type AspectRatio = ValueOf<typeof AspectRatio>;
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable jsx-a11y/anchor-is-valid */
2
2
  import { mdiChevronDown, mdiLink } from '@lumx/icons';
3
- import { ColorPalette, ColorVariant, Link, Typography } from '@lumx/react';
3
+ import { ColorPalette, ColorVariant, Link, Typography, TypographyInterface, TypographyTitleCustom } from '@lumx/react';
4
4
  import { boolean, select, text } from '@storybook/addon-knobs';
5
5
  import React, { Fragment } from 'react';
6
6
 
@@ -8,6 +8,8 @@ export default { title: 'LumX components/link/Link' };
8
8
 
9
9
  const onClick = () => console.log('clicked link');
10
10
 
11
+ const linkTypographies = { ...TypographyInterface, ...TypographyTitleCustom };
12
+
11
13
  export const SimpleLink = () => (
12
14
  <>
13
15
  <Link
@@ -15,7 +17,7 @@ export const SimpleLink = () => (
15
17
  target={boolean('target: _blank', false, 'Link 1') ? '_blank' : ''}
16
18
  color={select('Color', ColorPalette, ColorPalette.blue, 'Link 1')}
17
19
  colorVariant={select('Color Variant', ColorVariant, ColorVariant.N, 'Link 1')}
18
- typography={select('Typography', Typography, Typography.body2, 'Link 1')}
20
+ typography={select('Typography', linkTypographies, Typography.body2, 'Link 1')}
19
21
  >
20
22
  {text('Value', 'Here is a first link', 'Link 1')}
21
23
  </Link>
@@ -25,7 +27,7 @@ export const SimpleLink = () => (
25
27
  target={boolean('target: _blank', false, 'Link 2') ? '_blank' : ''}
26
28
  color={select('Color', ColorPalette, ColorPalette.blue, 'Link 2')}
27
29
  colorVariant={select('Color Variant', ColorVariant, ColorVariant.N, 'Link 2')}
28
- typography={select('Typography', Typography, Typography.body1, 'Link 2')}
30
+ typography={select('Typography', linkTypographies, Typography.body1, 'Link 2')}
29
31
  >
30
32
  {text('Value', 'Here is a second link', 'Link 2')}
31
33
  </Link>
@@ -35,7 +37,7 @@ export const SimpleLink = () => (
35
37
  target={boolean('target: _blank', false, 'Link 3') ? '_blank' : ''}
36
38
  color={select('Color', ColorPalette, ColorPalette.blue, 'Link 3')}
37
39
  colorVariant={select('Color Variant', ColorVariant, ColorVariant.N, 'Link 3')}
38
- typography={select('Typography', Typography, Typography.caption, 'Link 3')}
40
+ typography={select('Typography', linkTypographies, Typography.caption, 'Link 3')}
39
41
  >
40
42
  {text('Value', 'Here is a third link', 'Link 3')}
41
43
  </Link>
@@ -67,15 +69,16 @@ export const DisabledLink = () => (
67
69
 
68
70
  export const WithIcon = () => (
69
71
  <>
70
- {Object.values(Typography).map((typography) => (
72
+ {Object.values(linkTypographies).map((typography) => (
71
73
  <Fragment key={typography}>
74
+ {typography}
72
75
  <p>
73
- <Link rightIcon={mdiLink} href="https://www.google.com" typography={typography}>
76
+ <Link rightIcon={mdiLink} href="https://www.google.com" typography={typography as any}>
74
77
  With right icon
75
78
  </Link>
76
79
  </p>
77
80
  <p>
78
- <Link leftIcon={mdiChevronDown} href="https://www.google.com" typography={typography}>
81
+ <Link leftIcon={mdiChevronDown} href="https://www.google.com" typography={typography as any}>
79
82
  With left icon
80
83
  </Link>
81
84
  </p>
@@ -84,7 +87,7 @@ export const WithIcon = () => (
84
87
  leftIcon={mdiChevronDown}
85
88
  rightIcon={mdiLink}
86
89
  href="https://www.google.com"
87
- typography={typography}
90
+ typography={typography as any}
88
91
  >
89
92
  With right and left icon
90
93
  </Link>
@@ -93,3 +96,16 @@ export const WithIcon = () => (
93
96
  ))}
94
97
  </>
95
98
  );
99
+
100
+ export const WithCustomizableTypography = () => (
101
+ <>
102
+ <style>{`
103
+ :root {
104
+ --lumx-typography-custom-title1-font-size: 5px;
105
+ }
106
+ `}</style>
107
+ <Link typography={Typography.custom.title1} href="https://google.com">
108
+ Link with customizable `body` typography
109
+ </Link>
110
+ </>
111
+ );
@@ -4,7 +4,7 @@ import isEmpty from 'lodash/isEmpty';
4
4
 
5
5
  import classNames from 'classnames';
6
6
 
7
- import { Color, ColorVariant, Icon, Size, Typography } from '@lumx/react';
7
+ import { Color, ColorVariant, Icon, Size, Typography, TypographyInterface, TypographyTitleCustom } from '@lumx/react';
8
8
  import { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';
9
9
  import { renderLink } from '@lumx/react/utils/renderLink';
10
10
 
@@ -31,7 +31,7 @@ export interface LinkProps extends GenericProps {
31
31
  /** Link target. */
32
32
  target?: HTMLAnchorProps['target'];
33
33
  /** Typography variant. */
34
- typography?: Typography;
34
+ typography?: TypographyInterface | TypographyTitleCustom;
35
35
  }
36
36
 
37
37
  /**
@@ -51,6 +51,12 @@ const getIconSize = (typography?: Typography) => {
51
51
 
52
52
  case Typography.headline:
53
53
  case Typography.title:
54
+ case Typography.custom.title1:
55
+ case Typography.custom.title2:
56
+ case Typography.custom.title3:
57
+ case Typography.custom.title4:
58
+ case Typography.custom.title5:
59
+ case Typography.custom.title6:
54
60
  case Typography.body2:
55
61
  case Typography.subtitle2:
56
62
  return Size.s;