@lumx/react 3.20.1-alpha.36 → 3.20.1-alpha.37

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 (105) hide show
  1. package/index.js +13990 -64
  2. package/index.js.map +1 -0
  3. package/package.json +3 -3
  4. package/utils/index.js +159 -3
  5. package/utils/index.js.map +1 -0
  6. package/_internal/035c132d.js +0 -314
  7. package/_internal/0b9c76cb.js +0 -5
  8. package/_internal/0ea95af1.js +0 -819
  9. package/_internal/230173a8.js +0 -12
  10. package/_internal/2a3d237c.js +0 -11
  11. package/_internal/2c2b6a89.js +0 -51
  12. package/_internal/3181f000.js +0 -13
  13. package/_internal/36bd7352.js +0 -218
  14. package/_internal/3864a6c1.js +0 -436
  15. package/_internal/3a1facc0.js +0 -17
  16. package/_internal/49bbeed3.js +0 -5
  17. package/_internal/4daccdd5.js +0 -24
  18. package/_internal/4f4c0582.js +0 -2169
  19. package/_internal/5cef5e8c.js +0 -74
  20. package/_internal/6a60381c.js +0 -117
  21. package/_internal/6f084a40.js +0 -111
  22. package/_internal/76ddefd4.js +0 -61
  23. package/_internal/78df9309.js +0 -19
  24. package/_internal/7ad474e4.js +0 -98
  25. package/_internal/7b293665.js +0 -19
  26. package/_internal/7daf0f24.js +0 -76
  27. package/_internal/825ac334.js +0 -129
  28. package/_internal/827b804a.js +0 -5
  29. package/_internal/8bce732e.js +0 -8
  30. package/_internal/9d1336a1.js +0 -18
  31. package/_internal/a38bdcd0.js +0 -49
  32. package/_internal/b326655a.js +0 -682
  33. package/_internal/b83e864b.js +0 -76
  34. package/_internal/bace1bf1.js +0 -103
  35. package/_internal/c57190eb.js +0 -146
  36. package/_internal/components/alert-dialog/index-284fed80.js +0 -163
  37. package/_internal/components/autocomplete/__mockData__/index-96fc7ea7.js +0 -27
  38. package/_internal/components/autocomplete/index-27a49d5d.js +0 -261
  39. package/_internal/components/avatar/index-b8bc3cae.js +0 -83
  40. package/_internal/components/badge/index-9880f056.js +0 -81
  41. package/_internal/components/button/index-d919f96d.js +0 -47
  42. package/_internal/components/checkbox/index-dd478de9.js +0 -143
  43. package/_internal/components/chip/index-7f84cdbd.js +0 -102
  44. package/_internal/components/comment-block/index-e942de30.js +0 -138
  45. package/_internal/components/date-picker/index-a258d3ce.js +0 -596
  46. package/_internal/components/dialog/index-c7066813.js +0 -238
  47. package/_internal/components/divider/index-b6934baf.js +0 -50
  48. package/_internal/components/drag-handle/index-80e5af6c.js +0 -52
  49. package/_internal/components/dropdown/index-cebfc268.js +0 -147
  50. package/_internal/components/expansion-panel/index-9d45a211.js +0 -167
  51. package/_internal/components/flag/index-33e9d909.js +0 -59
  52. package/_internal/components/flex-box/index-0d6b6b43.js +0 -56
  53. package/_internal/components/generic-block/index-836c4352.js +0 -124
  54. package/_internal/components/grid/index-8c16a4f1.js +0 -104
  55. package/_internal/components/grid-column/index-4a2f56bb.js +0 -59
  56. package/_internal/components/heading/index-fd558a9a.js +0 -53
  57. package/_internal/components/icon/index-e7b9b40e.js +0 -1
  58. package/_internal/components/image-block/index-7021c2f1.js +0 -110
  59. package/_internal/components/image-lightbox/index-27017547.js +0 -759
  60. package/_internal/components/inline-list/index-52efec7f.js +0 -74
  61. package/_internal/components/input-helper/index-5a837e7c.js +0 -71
  62. package/_internal/components/input-label/index-0113f382.js +0 -59
  63. package/_internal/components/lightbox/index-fad5a9f2.js +0 -155
  64. package/_internal/components/link/index-008bae4b.js +0 -72
  65. package/_internal/components/link-preview/index-3e9c32f2.js +0 -117
  66. package/_internal/components/list/index-da88c6e9.js +0 -71
  67. package/_internal/components/message/index-17b568f2.js +0 -98
  68. package/_internal/components/mosaic/index-2d40e01c.js +0 -95
  69. package/_internal/components/navigation/index-dc17c639.js +0 -225
  70. package/_internal/components/notification/index-a1101015.js +0 -146
  71. package/_internal/components/popover/index-dbca63f1.js +0 -2
  72. package/_internal/components/popover-dialog/index-654d2abc.js +0 -66
  73. package/_internal/components/post-block/index-4b6b4dcb.js +0 -109
  74. package/_internal/components/progress/index-6f578c31.js +0 -182
  75. package/_internal/components/progress-tracker/index-700bc4c2.js +0 -309
  76. package/_internal/components/radio-button/index-89b725af.js +0 -149
  77. package/_internal/components/select/index-2755aa32.js +0 -458
  78. package/_internal/components/side-navigation/index-0bbe1fdd.js +0 -165
  79. package/_internal/components/skeleton/index-b2f8501c.js +0 -166
  80. package/_internal/components/slider/index-4f9b891b.js +0 -311
  81. package/_internal/components/slideshow/index-d4604589.js +0 -150
  82. package/_internal/components/switch/index-58fe0f0c.js +0 -122
  83. package/_internal/components/table/index-d541aa88.js +0 -297
  84. package/_internal/components/tabs/index-af1538d6.js +0 -298
  85. package/_internal/components/text/index-5bfc6d5e.js +0 -1
  86. package/_internal/components/text-field/index-47c98d09.js +0 -360
  87. package/_internal/components/thumbnail/index-71545d95.js +0 -41
  88. package/_internal/components/toolbar/index-7041a5a6.js +0 -61
  89. package/_internal/components/tooltip/index-8bb97e60.js +0 -327
  90. package/_internal/components/uploader/index-8f6f55de.js +0 -153
  91. package/_internal/components/user-block/index-70d4ce8f.js +0 -145
  92. package/_internal/d0e3f49e.js +0 -23
  93. package/_internal/de24f857.js +0 -3
  94. package/_internal/e806b848.js +0 -8
  95. package/_internal/e913a3af.js +0 -117
  96. package/_internal/ea04260d.js +0 -28
  97. package/_internal/eaf6c45a.js +0 -3
  98. package/_internal/ebdcb0c7.js +0 -60
  99. package/_internal/ef5d1aac.js +0 -3
  100. package/_internal/f0d7d6ea.js +0 -29
  101. package/_internal/utils/ClickAwayProvider/index-1234ce76.js +0 -94
  102. package/_internal/utils/MaterialThemeSwitcher/index-8d22de5a.js +0 -48
  103. package/_internal/utils/Portal/index-6e0a7404.js +0 -44
  104. package/_internal/utils/disabled/index-075b99c3.js +0 -36
  105. package/_internal/utils/type/index-ea9fc197.js +0 -2
@@ -1,12 +0,0 @@
1
- /** CSS selector listing all tabbable elements. */
2
- 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
- const DISABLED_SELECTOR = '[hidden], [tabindex="-1"], [disabled]:not([disabled="false"]), [aria-disabled]:not([aria-disabled="false"])';
6
-
7
- const isNotDisabled = element => !element.matches(DISABLED_SELECTOR);
8
- function getFocusableElements(element) {
9
- return Array.from(element.querySelectorAll(TABBABLE_ELEMENTS_SELECTOR)).filter(isNotDisabled);
10
- }
11
-
12
- export { getFocusableElements as g };
@@ -1,11 +0,0 @@
1
- import { useState, useCallback } from 'react';
2
-
3
- const useBooleanState = defaultValue => {
4
- const [booleanValue, setBoolean] = useState(defaultValue);
5
- const setToFalse = useCallback(() => setBoolean(false), []);
6
- const setToTrue = useCallback(() => setBoolean(true), []);
7
- const toggleBoolean = useCallback(() => setBoolean(previousValue => !previousValue), []);
8
- return [booleanValue, setToFalse, setToTrue, toggleBoolean];
9
- };
10
-
11
- export { useBooleanState as u };
@@ -1,51 +0,0 @@
1
- import React__default from 'react';
2
- import { jsx } from 'react/jsx-runtime';
3
-
4
- /** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */
5
- const forwardRefPolymorphic = React__default.forwardRef;
6
-
7
- /**
8
- * Render clickable element (link, button or custom element)
9
- * (also does some basic disabled state handling)
10
- */
11
- const RawClickable = forwardRefPolymorphic((props, ref) => {
12
- const {
13
- children,
14
- onClick,
15
- disabled,
16
- isDisabled = disabled,
17
- 'aria-disabled': ariaDisabled,
18
- as,
19
- ...forwardedProps
20
- } = props;
21
- const isAnyDisabled = isDisabled || ariaDisabled === 'true' || ariaDisabled === true;
22
- const Component = as;
23
- let clickableProps;
24
- if (Component === 'button') {
25
- clickableProps = {
26
- type: forwardedProps.type || 'button',
27
- disabled: isDisabled
28
- };
29
- } else {
30
- clickableProps = {
31
- tabIndex: isDisabled ? '-1' : forwardedProps.tabIndex
32
- };
33
- }
34
- return /*#__PURE__*/jsx(Component, {
35
- ref: ref,
36
- "aria-disabled": isAnyDisabled || undefined,
37
- ...forwardedProps,
38
- ...clickableProps,
39
- onClick: event => {
40
- if (isAnyDisabled) {
41
- event.stopPropagation();
42
- event.preventDefault();
43
- return;
44
- }
45
- onClick?.(event);
46
- },
47
- children: children
48
- });
49
- });
50
-
51
- export { RawClickable as R, forwardRefPolymorphic as f };
@@ -1,13 +0,0 @@
1
- import React__default from 'react';
2
-
3
- const ThemeContext = /*#__PURE__*/React__default.createContext(undefined);
4
-
5
- /** Provide a theme context to all children. */
6
- const ThemeProvider = ThemeContext.Provider;
7
-
8
- /** Get the theme in the current context. */
9
- function useTheme() {
10
- return React__default.useContext(ThemeContext);
11
- }
12
-
13
- export { ThemeProvider as T, useTheme as u };
@@ -1,218 +0,0 @@
1
- import { useEffect } from 'react';
2
-
3
- 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); } }
4
-
5
- // Older browsers don't support event options, feature detect it.
6
-
7
- // Adopted and modified solution from Bohdan Didukh (2017)
8
- // https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi
9
-
10
- var hasPassiveEvents = false;
11
- if (typeof window !== 'undefined') {
12
- var passiveTestOptions = {
13
- get passive() {
14
- hasPassiveEvents = true;
15
- return undefined;
16
- }
17
- };
18
- window.addEventListener('testPassive', null, passiveTestOptions);
19
- window.removeEventListener('testPassive', null, passiveTestOptions);
20
- }
21
-
22
- var 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);
23
-
24
-
25
- var locks = [];
26
- var documentListenerAdded = false;
27
- var initialClientY = -1;
28
- var previousBodyOverflowSetting = void 0;
29
- var previousBodyPaddingRight = void 0;
30
-
31
- // returns true if `el` should be allowed to receive touchmove events.
32
- var allowTouchMove = function allowTouchMove(el) {
33
- return locks.some(function (lock) {
34
- if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {
35
- return true;
36
- }
37
-
38
- return false;
39
- });
40
- };
41
-
42
- var preventDefault = function preventDefault(rawEvent) {
43
- var e = rawEvent || window.event;
44
-
45
- // For the case whereby consumers adds a touchmove event listener to document.
46
- // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })
47
- // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then
48
- // the touchmove event on document will break.
49
- if (allowTouchMove(e.target)) {
50
- return true;
51
- }
52
-
53
- // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).
54
- if (e.touches.length > 1) return true;
55
-
56
- if (e.preventDefault) e.preventDefault();
57
-
58
- return false;
59
- };
60
-
61
- var setOverflowHidden = function setOverflowHidden(options) {
62
- // If previousBodyPaddingRight is already set, don't set it again.
63
- if (previousBodyPaddingRight === undefined) {
64
- var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;
65
- var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;
66
-
67
- if (_reserveScrollBarGap && scrollBarGap > 0) {
68
- previousBodyPaddingRight = document.body.style.paddingRight;
69
- document.body.style.paddingRight = scrollBarGap + 'px';
70
- }
71
- }
72
-
73
- // If previousBodyOverflowSetting is already set, don't set it again.
74
- if (previousBodyOverflowSetting === undefined) {
75
- previousBodyOverflowSetting = document.body.style.overflow;
76
- document.body.style.overflow = 'hidden';
77
- }
78
- };
79
-
80
- var restoreOverflowSetting = function restoreOverflowSetting() {
81
- if (previousBodyPaddingRight !== undefined) {
82
- document.body.style.paddingRight = previousBodyPaddingRight;
83
-
84
- // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it
85
- // can be set again.
86
- previousBodyPaddingRight = undefined;
87
- }
88
-
89
- if (previousBodyOverflowSetting !== undefined) {
90
- document.body.style.overflow = previousBodyOverflowSetting;
91
-
92
- // Restore previousBodyOverflowSetting to undefined
93
- // so setOverflowHidden knows it can be set again.
94
- previousBodyOverflowSetting = undefined;
95
- }
96
- };
97
-
98
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions
99
- var isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {
100
- return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;
101
- };
102
-
103
- var handleScroll = function handleScroll(event, targetElement) {
104
- var clientY = event.targetTouches[0].clientY - initialClientY;
105
-
106
- if (allowTouchMove(event.target)) {
107
- return false;
108
- }
109
-
110
- if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {
111
- // element is at the top of its scroll.
112
- return preventDefault(event);
113
- }
114
-
115
- if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {
116
- // element is at the bottom of its scroll.
117
- return preventDefault(event);
118
- }
119
-
120
- event.stopPropagation();
121
- return true;
122
- };
123
-
124
- var disableBodyScroll = function disableBodyScroll(targetElement, options) {
125
- // targetElement must be provided
126
- if (!targetElement) {
127
- // eslint-disable-next-line no-console
128
- console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');
129
- return;
130
- }
131
-
132
- // disableBodyScroll must not have been called on this targetElement before
133
- if (locks.some(function (lock) {
134
- return lock.targetElement === targetElement;
135
- })) {
136
- return;
137
- }
138
-
139
- var lock = {
140
- targetElement: targetElement,
141
- options: options || {}
142
- };
143
-
144
- locks = [].concat(_toConsumableArray(locks), [lock]);
145
-
146
- if (isIosDevice) {
147
- targetElement.ontouchstart = function (event) {
148
- if (event.targetTouches.length === 1) {
149
- // detect single touch.
150
- initialClientY = event.targetTouches[0].clientY;
151
- }
152
- };
153
- targetElement.ontouchmove = function (event) {
154
- if (event.targetTouches.length === 1) {
155
- // detect single touch.
156
- handleScroll(event, targetElement);
157
- }
158
- };
159
-
160
- if (!documentListenerAdded) {
161
- document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
162
- documentListenerAdded = true;
163
- }
164
- } else {
165
- setOverflowHidden(options);
166
- }
167
- };
168
-
169
- var enableBodyScroll = function enableBodyScroll(targetElement) {
170
- if (!targetElement) {
171
- // eslint-disable-next-line no-console
172
- console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');
173
- return;
174
- }
175
-
176
- locks = locks.filter(function (lock) {
177
- return lock.targetElement !== targetElement;
178
- });
179
-
180
- if (isIosDevice) {
181
- targetElement.ontouchstart = null;
182
- targetElement.ontouchmove = null;
183
-
184
- if (documentListenerAdded && locks.length === 0) {
185
- document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
186
- documentListenerAdded = false;
187
- }
188
- } else if (!locks.length) {
189
- restoreOverflowSetting();
190
- }
191
- };
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
- */
199
- const useDisableBodyScroll = modalElement => {
200
- useEffect(() => {
201
- if (!modalElement) {
202
- return undefined;
203
- }
204
- // Fixing the document overflow style to prevent a bug that scrolls the window to the top.
205
- const previousDocumentOverflow = document.documentElement.style.overflow;
206
- document.documentElement.style.overflow = 'visible';
207
- disableBodyScroll(modalElement);
208
- return () => {
209
- enableBodyScroll(modalElement);
210
- // Restore the previous overflow style.
211
- requestAnimationFrame(() => {
212
- document.documentElement.style.overflow = previousDocumentOverflow;
213
- });
214
- };
215
- }, [modalElement]);
216
- };
217
-
218
- export { useDisableBodyScroll as u };