@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.
- package/index.js +13990 -64
- package/index.js.map +1 -0
- package/package.json +3 -3
- package/utils/index.js +159 -3
- package/utils/index.js.map +1 -0
- package/_internal/035c132d.js +0 -314
- package/_internal/0b9c76cb.js +0 -5
- package/_internal/0ea95af1.js +0 -819
- package/_internal/230173a8.js +0 -12
- package/_internal/2a3d237c.js +0 -11
- package/_internal/2c2b6a89.js +0 -51
- package/_internal/3181f000.js +0 -13
- package/_internal/36bd7352.js +0 -218
- package/_internal/3864a6c1.js +0 -436
- package/_internal/3a1facc0.js +0 -17
- package/_internal/49bbeed3.js +0 -5
- package/_internal/4daccdd5.js +0 -24
- package/_internal/4f4c0582.js +0 -2169
- package/_internal/5cef5e8c.js +0 -74
- package/_internal/6a60381c.js +0 -117
- package/_internal/6f084a40.js +0 -111
- package/_internal/76ddefd4.js +0 -61
- package/_internal/78df9309.js +0 -19
- package/_internal/7ad474e4.js +0 -98
- package/_internal/7b293665.js +0 -19
- package/_internal/7daf0f24.js +0 -76
- package/_internal/825ac334.js +0 -129
- package/_internal/827b804a.js +0 -5
- package/_internal/8bce732e.js +0 -8
- package/_internal/9d1336a1.js +0 -18
- package/_internal/a38bdcd0.js +0 -49
- package/_internal/b326655a.js +0 -682
- package/_internal/b83e864b.js +0 -76
- package/_internal/bace1bf1.js +0 -103
- package/_internal/c57190eb.js +0 -146
- package/_internal/components/alert-dialog/index-284fed80.js +0 -163
- package/_internal/components/autocomplete/__mockData__/index-96fc7ea7.js +0 -27
- package/_internal/components/autocomplete/index-27a49d5d.js +0 -261
- package/_internal/components/avatar/index-b8bc3cae.js +0 -83
- package/_internal/components/badge/index-9880f056.js +0 -81
- package/_internal/components/button/index-d919f96d.js +0 -47
- package/_internal/components/checkbox/index-dd478de9.js +0 -143
- package/_internal/components/chip/index-7f84cdbd.js +0 -102
- package/_internal/components/comment-block/index-e942de30.js +0 -138
- package/_internal/components/date-picker/index-a258d3ce.js +0 -596
- package/_internal/components/dialog/index-c7066813.js +0 -238
- package/_internal/components/divider/index-b6934baf.js +0 -50
- package/_internal/components/drag-handle/index-80e5af6c.js +0 -52
- package/_internal/components/dropdown/index-cebfc268.js +0 -147
- package/_internal/components/expansion-panel/index-9d45a211.js +0 -167
- package/_internal/components/flag/index-33e9d909.js +0 -59
- package/_internal/components/flex-box/index-0d6b6b43.js +0 -56
- package/_internal/components/generic-block/index-836c4352.js +0 -124
- package/_internal/components/grid/index-8c16a4f1.js +0 -104
- package/_internal/components/grid-column/index-4a2f56bb.js +0 -59
- package/_internal/components/heading/index-fd558a9a.js +0 -53
- package/_internal/components/icon/index-e7b9b40e.js +0 -1
- package/_internal/components/image-block/index-7021c2f1.js +0 -110
- package/_internal/components/image-lightbox/index-27017547.js +0 -759
- package/_internal/components/inline-list/index-52efec7f.js +0 -74
- package/_internal/components/input-helper/index-5a837e7c.js +0 -71
- package/_internal/components/input-label/index-0113f382.js +0 -59
- package/_internal/components/lightbox/index-fad5a9f2.js +0 -155
- package/_internal/components/link/index-008bae4b.js +0 -72
- package/_internal/components/link-preview/index-3e9c32f2.js +0 -117
- package/_internal/components/list/index-da88c6e9.js +0 -71
- package/_internal/components/message/index-17b568f2.js +0 -98
- package/_internal/components/mosaic/index-2d40e01c.js +0 -95
- package/_internal/components/navigation/index-dc17c639.js +0 -225
- package/_internal/components/notification/index-a1101015.js +0 -146
- package/_internal/components/popover/index-dbca63f1.js +0 -2
- package/_internal/components/popover-dialog/index-654d2abc.js +0 -66
- package/_internal/components/post-block/index-4b6b4dcb.js +0 -109
- package/_internal/components/progress/index-6f578c31.js +0 -182
- package/_internal/components/progress-tracker/index-700bc4c2.js +0 -309
- package/_internal/components/radio-button/index-89b725af.js +0 -149
- package/_internal/components/select/index-2755aa32.js +0 -458
- package/_internal/components/side-navigation/index-0bbe1fdd.js +0 -165
- package/_internal/components/skeleton/index-b2f8501c.js +0 -166
- package/_internal/components/slider/index-4f9b891b.js +0 -311
- package/_internal/components/slideshow/index-d4604589.js +0 -150
- package/_internal/components/switch/index-58fe0f0c.js +0 -122
- package/_internal/components/table/index-d541aa88.js +0 -297
- package/_internal/components/tabs/index-af1538d6.js +0 -298
- package/_internal/components/text/index-5bfc6d5e.js +0 -1
- package/_internal/components/text-field/index-47c98d09.js +0 -360
- package/_internal/components/thumbnail/index-71545d95.js +0 -41
- package/_internal/components/toolbar/index-7041a5a6.js +0 -61
- package/_internal/components/tooltip/index-8bb97e60.js +0 -327
- package/_internal/components/uploader/index-8f6f55de.js +0 -153
- package/_internal/components/user-block/index-70d4ce8f.js +0 -145
- package/_internal/d0e3f49e.js +0 -23
- package/_internal/de24f857.js +0 -3
- package/_internal/e806b848.js +0 -8
- package/_internal/e913a3af.js +0 -117
- package/_internal/ea04260d.js +0 -28
- package/_internal/eaf6c45a.js +0 -3
- package/_internal/ebdcb0c7.js +0 -60
- package/_internal/ef5d1aac.js +0 -3
- package/_internal/f0d7d6ea.js +0 -29
- package/_internal/utils/ClickAwayProvider/index-1234ce76.js +0 -94
- package/_internal/utils/MaterialThemeSwitcher/index-8d22de5a.js +0 -48
- package/_internal/utils/Portal/index-6e0a7404.js +0 -44
- package/_internal/utils/disabled/index-075b99c3.js +0 -36
- package/_internal/utils/type/index-ea9fc197.js +0 -2
package/_internal/230173a8.js
DELETED
|
@@ -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 };
|
package/_internal/2a3d237c.js
DELETED
|
@@ -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 };
|
package/_internal/2c2b6a89.js
DELETED
|
@@ -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 };
|
package/_internal/3181f000.js
DELETED
|
@@ -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 };
|
package/_internal/36bd7352.js
DELETED
|
@@ -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 };
|